Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Logger = {}
- Logger.new = function()
- local self = {}
- FATAL = 1
- ERROR = 2
- WARNING = 3
- INFO = 4
- DEBUG = 5
- TRACE = 6
- log_level_map = {
- [FATAL] = "FATAL",
- [ERROR] = "ERROR",
- [WARNING] = "WARNING",
- [INFO] = "INFO",
- [DEBUG] = "DEBUG",
- [TRACE] = "TRACE"
- }
- log_level = INFO
- screen_log = true
- disk_log = true
- disk_file = "log.txt"
- file_handle = fs.open(disk_file, "w")
- self.LogToScreen = function(boolean)
- screen_log = boolean
- end
- self.LogToDisk = function(boolean)
- disk_log = boolean
- end
- self.SetFatalLevel = function()
- log_level = FATAL
- end
- self.SetErrorLevel = function()
- log_level = ERROR
- end
- self.SetWarningLevel = function()
- log_level = WARNING
- end
- self.SetInfoLevel = function()
- log_level = INFO
- end
- self.SetDebugLevel = function()
- log_level = DEBUG
- end
- self.SetTraceLevel = function()
- log_level = TRACE
- end
- self._Log = function(level, message)
- if log_level >= level then
- log_message = log_level_map[level] .. " " .. message
- print(log_message)
- file_handle.writeLine(log_message)
- file_handle.flush()
- end
- end
- self.Fatal = function(message)
- self._Log(FATAL, message)
- end
- self.Error = function(message)
- self._Log(ERROR, message)
- end
- self.Warning = function(message)
- self._Log(WARNING, message)
- end
- self.Info = function(message)
- self._Log(INFO, message)
- end
- self.Debug = function(message)
- self._Log(DEBUG, message)
- end
- self.Trace = function(message)
- self._Log(TRACE, message)
- end
- return self
- end
- -- log = Logger.new()
- -- log.SetTraceLevel()
- -- log.Info("Info message")
- -- log.Debug("Debug message")
- -- log.Trace("Trace message")
Advertisement
Add Comment
Please, Sign In to add comment