Guest User

logging.lua

a guest
Feb 1st, 2014
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.01 KB | None | 0 0
  1. Logger = {}
  2.  
  3. Logger.new = function()
  4.     local self = {}
  5.  
  6.     FATAL = 1
  7.     ERROR = 2
  8.     WARNING = 3
  9.     INFO = 4
  10.     DEBUG = 5
  11.     TRACE = 6
  12.  
  13.     log_level_map = {
  14.         [FATAL] = "FATAL",
  15.         [ERROR] = "ERROR",
  16.         [WARNING] = "WARNING",
  17.         [INFO] = "INFO",
  18.         [DEBUG] = "DEBUG",
  19.         [TRACE] = "TRACE"
  20.     }
  21.  
  22.     log_level = INFO
  23.  
  24.     screen_log = true
  25.     disk_log = true
  26.     disk_file = "log.txt"
  27.     file_handle = fs.open(disk_file, "w")
  28.  
  29.     self.LogToScreen = function(boolean)
  30.         screen_log = boolean
  31.     end
  32.  
  33.     self.LogToDisk = function(boolean)
  34.         disk_log = boolean
  35.     end
  36.  
  37.     self.SetFatalLevel = function()
  38.         log_level = FATAL
  39.     end
  40.  
  41.     self.SetErrorLevel = function()
  42.         log_level = ERROR
  43.     end
  44.  
  45.     self.SetWarningLevel = function()
  46.         log_level = WARNING
  47.     end
  48.  
  49.     self.SetInfoLevel = function()
  50.         log_level = INFO
  51.     end
  52.  
  53.     self.SetDebugLevel = function()
  54.         log_level = DEBUG
  55.     end
  56.  
  57.     self.SetTraceLevel = function()
  58.         log_level = TRACE
  59.     end
  60.  
  61.     self._Log = function(level, message)
  62.         if log_level >= level then
  63.             log_message = log_level_map[level] .. " " .. message
  64.             print(log_message)
  65.             file_handle.writeLine(log_message)
  66.             file_handle.flush()
  67.         end
  68.     end
  69.  
  70.     self.Fatal = function(message)
  71.         self._Log(FATAL, message)
  72.     end
  73.  
  74.     self.Error = function(message)
  75.         self._Log(ERROR, message)
  76.     end
  77.  
  78.     self.Warning = function(message)
  79.         self._Log(WARNING, message)
  80.     end
  81.  
  82.     self.Info = function(message)
  83.         self._Log(INFO, message)
  84.     end
  85.  
  86.     self.Debug = function(message)
  87.         self._Log(DEBUG, message)
  88.     end
  89.  
  90.     self.Trace = function(message)
  91.         self._Log(TRACE, message)
  92.     end
  93.  
  94.     return self
  95.  
  96. end
  97.  
  98. -- log = Logger.new()
  99.  
  100. -- log.SetTraceLevel()
  101.  
  102. -- log.Info("Info message")
  103. -- log.Debug("Debug message")
  104. -- log.Trace("Trace message")
Advertisement
Add Comment
Please, Sign In to add comment