123456789101112131415161718192021222324252627282930313233343536 |
- # 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)
|