     err.lineNumber = stack[0].getLineNumber()
     err.columnNumber = stack[0].getColumnNumber()
     err.context = stack[0].getThis()
+  err.level = level
+  err.levelName = e.levels[level]
   middle err for middle in e.middleware
 
+e.levels = ["DEBUG", "LOW", "NORMAL", "HIGH", "SEVERE"] # TODO: Make these better
 e.middleware = []
 e.use = (fn) -> e.middleware.push fn
 

e = (err) ->
  return unless err
  err = new Error err unless err instanceof Error
  stack = e.stack err, arguments.callee


# Included middleware
e.console = (err) ->
  contents = "[#{err.levelName}][#{new Date()}] - #{err.message}"
  contents += " thrown in #{err.fileName}" if err.fileName?
  contents += "::#{err.functionName}" if err.functionName?
  contents += ":#{err.lineNumber}" if err.lineNumber?
