 ttm.define "logger", ['lib/class_mixer'], (class_mixer)->
   class LogEntry
     initialize: ((@level, @args)->)
-    createStrMsg: ->
+    createStrMsg: (index)->
       message = ''
       for arg in @args
         arg = JSON.stringify(arg) unless typeof arg is 'string'
         message += "#{arg} "
-      "#{@level}: #{message}"
+      "#{@levelAndEntryIndexString()} #{message}"
 
-    createArrMsg: ->
+    createArrMsg: (index)->
       ret = []
-      current_str = "#{@level}: "
+      current_str = @levelAndEntryIndexString()
+
       for arg in @args
         if typeof arg is 'string'
           current_str += " #{arg}"

    add: (type, args = []) ->
      entry = LogEntry.build(type, args)
      @entries.push entry

      if @log_entry_display_types.indexOf(type) != -1
        @console_log.apply(null, entry.display(@stringify_objects))

    typesForLevel: (level)->
      switch level

          ret.push arg
      ret.push current_str unless current_str.length == 0
      ret

    levelAndEntryIndexString: ()->
      "#{@level} (##{@index}):"

    display: (force_string, @index)->
      if force_string
        [@createStrMsg()]
      else
