diff options
author | Ahmed T. Youssef <xmonader@gmail.com> | 2018-10-30 08:36:31 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2018-10-30 07:36:31 +0100 |
commit | df68c2da49f99cea5824623d2512b5be27a9a116 (patch) | |
tree | ac596bb32f3ec967c57d589e6af4e69721aeb529 /lib | |
parent | 9899c4525c9bedbdc3a8d7d4fbcbf8f85a4c474a (diff) | |
download | Nim-df68c2da49f99cea5824623d2512b5be27a9a116.tar.gz |
write logs to stderr instead of stdout; fixes #9547 (#9554)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/logging.nim | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/pure/logging.nim b/lib/pure/logging.nim index f2f5cac9e..cd13deec3 100644 --- a/lib/pure/logging.nim +++ b/lib/pure/logging.nim @@ -80,6 +80,7 @@ type ConsoleLogger* = ref object of Logger ## logger that writes the messages to the ## console + useStderr*: bool ## will send logs into Stderr if set when not defined(js): type @@ -150,16 +151,20 @@ method log*(logger: ConsoleLogger, level: Level, args: varargs[string, `$`]) = {.emit: "console.log(`cln`);".} else: try: - writeLine(stdout, ln) - if level in {lvlError, lvlFatal}: flushFile(stdout) + var handle = stdout + if logger.useStderr: + handle = stderr + writeLine(handle, ln) + if level in {lvlError, lvlFatal}: flushFile(handle) except IOError: discard -proc newConsoleLogger*(levelThreshold = lvlAll, fmtStr = defaultFmtStr): ConsoleLogger = +proc newConsoleLogger*(levelThreshold = lvlAll, fmtStr = defaultFmtStr, useStderr=false): ConsoleLogger = ## Creates a new console logger. This logger logs to the console. new result result.fmtStr = fmtStr result.levelThreshold = levelThreshold + result.useStderr = useStderr when not defined(js): method log*(logger: FileLogger, level: Level, args: varargs[string, `$`]) = |