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
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 |
|
}) |
|
|
|
|