blob: fdcec4dd4e76aa7b9b02574ef302a51fa421638f (
plain) (
tree)
|
|
# issue #8573
import
macros,
strutils,
terminal
type LogSeverity* = enum
sevError = "Error"
sevWarn = "Warn"
sevInfo = "Info"
sevDebug = "Debug"
macro log*(severity: static[LogSeverity], group: static[string], m: varargs[typed]): untyped =
let sevStr = align("[" & toUpperAscii($severity) & "] ", 8)
let sevColor = case severity
of sevError: fgRed
of sevWarn: fgYellow
of sevInfo: fgWhite
of sevDebug: fgBlack
let groupStr = "[" & $group & "] "
result = quote do:
setStyle({ styleBright })
setForegroundColor(sevColor) # <==
write(stdout, sevStr)
setStyle({ styleDim })
setForegroundColor(fgWhite)
write(stdout, groupStr)
let wl = newCall(bindSym"styledWriteLine", bindSym"stdout")
for arg in m: wl.add(arg)
result.add(wl)
|