Removed formatting from logging.
This commit is contained in:
parent
d270c8ebe8
commit
e65ccfb8f5
2 changed files with 27 additions and 30 deletions
|
|
@ -112,27 +112,22 @@ proc substituteLog(frmt: string): string =
|
||||||
of "appname": result.add(app.splitFile.name)
|
of "appname": result.add(app.splitFile.name)
|
||||||
else: discard
|
else: discard
|
||||||
|
|
||||||
method log*(logger: Logger, level: Level,
|
method log*(logger: Logger, level: Level, args: varargs[string, `$`]) {.
|
||||||
frmt: string, args: varargs[string, `$`]) {.
|
|
||||||
raises: [Exception],
|
raises: [Exception],
|
||||||
tags: [TimeEffect, WriteIOEffect, ReadIOEffect].} =
|
tags: [TimeEffect, WriteIOEffect, ReadIOEffect].} =
|
||||||
## Override this method in custom loggers. Default implementation does
|
## Override this method in custom loggers. Default implementation does
|
||||||
## nothing.
|
## nothing.
|
||||||
discard
|
discard
|
||||||
|
|
||||||
method log*(logger: ConsoleLogger, level: Level,
|
method log*(logger: ConsoleLogger, level: Level, args: varargs[string, `$`]) =
|
||||||
frmt: string, args: varargs[string, `$`]) =
|
|
||||||
## Logs to the console using ``logger`` only.
|
## Logs to the console using ``logger`` only.
|
||||||
if level >= logger.levelThreshold:
|
if level >= logger.levelThreshold:
|
||||||
writeln(stdout, LevelNames[level], " ", substituteLog(logger.fmtStr),
|
writeln(stdout, LevelNames[level], " ", substituteLog(logger.fmtStr), args)
|
||||||
frmt % args)
|
|
||||||
|
|
||||||
method log*(logger: FileLogger, level: Level,
|
method log*(logger: FileLogger, level: Level, args: varargs[string, `$`]) =
|
||||||
frmt: string, args: varargs[string, `$`]) =
|
|
||||||
## Logs to a file using ``logger`` only.
|
## Logs to a file using ``logger`` only.
|
||||||
if level >= logger.levelThreshold:
|
if level >= logger.levelThreshold:
|
||||||
writeln(logger.f, LevelNames[level], " ",
|
writeln(logger.f, LevelNames[level], " ", substituteLog(logger.fmtStr), args)
|
||||||
substituteLog(logger.fmtStr), frmt % args)
|
|
||||||
|
|
||||||
proc defaultFilename*(): string =
|
proc defaultFilename*(): string =
|
||||||
## Returns the default filename for a logger.
|
## Returns the default filename for a logger.
|
||||||
|
|
@ -206,8 +201,7 @@ proc rotate(logger: RollingFileLogger) =
|
||||||
moveFile(dir / (name & ext & srcSuff),
|
moveFile(dir / (name & ext & srcSuff),
|
||||||
dir / (name & ext & ExtSep & $(i+1)))
|
dir / (name & ext & ExtSep & $(i+1)))
|
||||||
|
|
||||||
method log*(logger: RollingFileLogger, level: Level,
|
method log*(logger: RollingFileLogger, level: Level, args: varargs[string, `$`]) =
|
||||||
frmt: string, args: varargs[string, `$`]) =
|
|
||||||
## Logs to a file using rolling ``logger`` only.
|
## Logs to a file using rolling ``logger`` only.
|
||||||
if level >= logger.levelThreshold:
|
if level >= logger.levelThreshold:
|
||||||
if logger.curLine >= logger.maxLines:
|
if logger.curLine >= logger.maxLines:
|
||||||
|
|
@ -217,7 +211,7 @@ method log*(logger: RollingFileLogger, level: Level,
|
||||||
logger.curLine = 0
|
logger.curLine = 0
|
||||||
logger.f = open(logger.baseName, logger.baseMode)
|
logger.f = open(logger.baseName, logger.baseMode)
|
||||||
|
|
||||||
writeln(logger.f, LevelNames[level], " ",substituteLog(logger.fmtStr), frmt % args)
|
writeln(logger.f, LevelNames[level], " ", substituteLog(logger.fmtStr), args)
|
||||||
logger.curLine.inc
|
logger.curLine.inc
|
||||||
|
|
||||||
# --------
|
# --------
|
||||||
|
|
@ -225,39 +219,39 @@ method log*(logger: RollingFileLogger, level: Level,
|
||||||
var level {.threadvar.}: Level ## global log filter
|
var level {.threadvar.}: Level ## global log filter
|
||||||
var handlers {.threadvar.}: seq[Logger] ## handlers with their own log levels
|
var handlers {.threadvar.}: seq[Logger] ## handlers with their own log levels
|
||||||
|
|
||||||
proc logLoop(level: Level, frmt: string, args: varargs[string, `$`]) =
|
proc logLoop(level: Level, args: varargs[string, `$`]) =
|
||||||
for logger in items(handlers):
|
for logger in items(handlers):
|
||||||
if level >= logger.levelThreshold:
|
if level >= logger.levelThreshold:
|
||||||
log(logger, level, frmt, args)
|
log(logger, level, args)
|
||||||
|
|
||||||
template log*(level: Level, frmt: string, args: varargs[string, `$`]) =
|
template log*(level: Level, args: varargs[string, `$`]) =
|
||||||
## Logs a message to all registered handlers at the given level.
|
## Logs a message to all registered handlers at the given level.
|
||||||
bind logLoop
|
bind logLoop
|
||||||
bind `%`
|
bind `%`
|
||||||
bind logging.level
|
bind logging.level
|
||||||
|
|
||||||
if level >= logging.level:
|
if level >= logging.level:
|
||||||
logLoop(level, frmt, args)
|
logLoop(level, args)
|
||||||
|
|
||||||
template debug*(frmt: string, args: varargs[string, `$`]) =
|
template debug*(args: varargs[string, `$`]) =
|
||||||
## Logs a debug message to all registered handlers.
|
## Logs a debug message to all registered handlers.
|
||||||
log(lvlDebug, frmt, args)
|
log(lvlDebug, args)
|
||||||
|
|
||||||
template info*(frmt: string, args: varargs[string, `$`]) =
|
template info*(args: varargs[string, `$`]) =
|
||||||
## Logs an info message to all registered handlers.
|
## Logs an info message to all registered handlers.
|
||||||
log(lvlInfo, frmt, args)
|
log(lvlInfo, args)
|
||||||
|
|
||||||
template warn*(frmt: string, args: varargs[string, `$`]) =
|
template warn*(args: varargs[string, `$`]) =
|
||||||
## Logs a warning message to all registered handlers.
|
## Logs a warning message to all registered handlers.
|
||||||
log(lvlWarn, frmt, args)
|
log(lvlWarn, args)
|
||||||
|
|
||||||
template error*(frmt: string, args: varargs[string, `$`]) =
|
template error*(args: varargs[string, `$`]) =
|
||||||
## Logs an error message to all registered handlers.
|
## Logs an error message to all registered handlers.
|
||||||
log(lvlError, frmt, args)
|
log(lvlError, args)
|
||||||
|
|
||||||
template fatal*(frmt: string, args: varargs[string, `$`]) =
|
template fatal*(args: varargs[string, `$`]) =
|
||||||
## Logs a fatal error message to all registered handlers.
|
## Logs a fatal error message to all registered handlers.
|
||||||
log(lvlFatal, frmt, args)
|
log(lvlFatal, args)
|
||||||
|
|
||||||
proc addHandler*(handler: Logger) =
|
proc addHandler*(handler: Logger) =
|
||||||
## Adds ``handler`` to the list of handlers.
|
## Adds ``handler`` to the list of handlers.
|
||||||
|
|
@ -286,6 +280,4 @@ when not defined(testing) and isMainModule:
|
||||||
addHandler(fL)
|
addHandler(fL)
|
||||||
addHandler(rL)
|
addHandler(rL)
|
||||||
for i in 0 .. 25:
|
for i in 0 .. 25:
|
||||||
info("hello" & $i, [])
|
info("hello", i)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,11 @@ News
|
||||||
during object initialization or as a named parameter of ``initInterval()``
|
during object initialization or as a named parameter of ``initInterval()``
|
||||||
will need to be updated.
|
will need to be updated.
|
||||||
|
|
||||||
|
- ``std.logging`` functions no longer do formatting and semantically treat
|
||||||
|
their arguments just like ``echo`` does. Affected functions: ``log``,
|
||||||
|
``debug``, ``info``, ``warn``, ``error``, ``fatal``. Custom subtypes of
|
||||||
|
``Logger`` also need to be adjusted accordingly.
|
||||||
|
|
||||||
Language Additions
|
Language Additions
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue