You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

73 lines
2.4 KiB

-- --- SDE-COPYRIGHT-NOTE-BEGIN ---
-- This copyright note is auto-generated by ./scripts/Create-CopyPatch.
--
-- Filename: package/.../sam/sam/log.lua
-- Copyright (C) 2006 The T2 SDE Project
--
-- More information can be found in the files COPYING and README.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; version 2 of the License. A copy of the
-- GNU General Public License can be found in the file COPYING.
-- --- SDE-COPYRIGHT-NOTE-END ---
sam = sam or {}
--[[ DESCRIPTION ] ----------------------------------------------------------
Provided functions:
* sam.log(required-verbosity-level, identification, printf-format...)
Print information about SAM processing. The logging level (sam.opt.loglevel)
has to be equal or higher than "required-verbosity-level". The
"identification" is printed in square brackets in front of the message.
Example:
sam.log(sam.log.ERROR, "Config", "Config file incosistency (%s)",
filename)
* sam.error(identification, format...)
* sam.warn(identification, format...)
* sam.notice(identification, format...)
* sam.info(identification, format...)
* sam.dbg(identification, format...)
Short form for the logging function.
--]] ------------------------------------------------------------------------
sam.log = {
ERROR = 0,
WARN = 1,
NOTICE = 2,
INFO = 3,
DEBUG = 4,
}
sam.error = function(ident,...) sam.log(sam.log.ERROR, ident, unpack(arg)) end
sam.warn = function(ident,...) sam.log(sam.log.WARN, ident, unpack(arg)) end
sam.notice = function(ident,...) sam.log(sam.log.NOTICE, ident, unpack(arg)) end
sam.info = function(ident,...) sam.log(sam.log.INFO, ident, unpack(arg)) end
sam.dbg = function(ident,...) sam.log(sam.log.DEBUG, ident, unpack(arg)) end
-- log_stdout(required-log-level, identification, fmt...)
-- The default logging method is to log to stderr.
local function log_stdout(reqlvl, ident, ...)
if sam.opt.loglevel >= reqlvl then
io.stderr:write(string.format("[%s] ", ident))
io.stderr:write(string.format(unpack(arg)))
end
end
-- sam.log(required-log-level, identification, fmt...)
-- sam.log can be called as function via a metatable,
-- default: log_stdout
setmetatable(sam.log, {
__call = function(self, reqlvl, ident, ...)
log_stdout(reqlvl, ident, unpack(arg))
end
})