         type = then @types[type].symbol
       else
         type = @keyword
-
-    if @align
-      if CONST.ENV is 'production'
-        align = ' '
-      else if @keyword
-        align = ' '
-      else
-        align = @align
-    else
-      align = ' '
-
     type = type.toUpperCase() if @upperCase
     type
 
+  outputAlign: ->
+    return ' ' if CONST.ENV is 'production' or not @align or @keyword
+    @align
+
   outputCounter: ->
+    return '' unless @timestamp
     now = new Date
     diff = now - @timestamp
     ++@counter if (diff > 1000)
     @timestamp = new Date()
     "[#{@decorateCounter(@counter)}]"
 
-  outputContext: ->
-    @context
+  outputContext: -> @context
 
   transport: console.log
 

    messageContext = @outputContext()
    messageContext = @colorize CONST.LINE_COLOR, messageContext

    output = "#{messageType} #{messageCounter} #{messageContext} #{@align}#{message}"
    output += @colorize colorType, diff if diff
    output


    formatUtil.apply null, messages

  keyword: null
  context: null
  diff: false
  align: "\t\t"
  color: true
  counter: 0
  cli: false

  timestamp: new Date()

