Log Printing Example
Printing ALL-level Logs
The following is an example of printing ALL-level logs.
Code:
import std.log.*
main(): Int64 {
let logger: SimpleLogger = SimpleLogger()
logger.level = LogLevel.ALL
logger.log(LogLevel.ALL, "============== The log level is ALL.================")
logger.log(LogLevel.TRACE,
"=============="+logger.level.toString()+"================")
logger.log (LogLevel.OFF, "Print OFF-level logs!")
logger.log(LogLevel.ERROR, "Print ERROR-level logs!")
logger.log(LogLevel.WARN, "Print WARN-level logs!")
logger.log(LogLevel.INFO, "Print INFO-level logs!")
logger.log(LogLevel.DEBUG, "Print DEBUG-level logs!")
logger.log(LogLevel.TRACE, "Print TRACE-level logs!")
logger.log(LogLevel.ALL, "Print ALL-level logs!")
logger.flush()
0
}
Running result:
2021/08/05 08:20:42.692770 ALL Logger ============== The log level is ALL.================
2021/08/05 08:20:42.696645 TRACE Logger ==============ALL================
2021/08/05 08:20:42.700188 ERROR Logger Print ERROR-level logs!
2021/08/05 08:20:42.703576 WARN Logger Print WARN-level logs!
2021/08/05 08:20:42.706920 INFO Logger Print INFO-level logs!
2021/08/05 08:20:42.710268 DEBUG Logger Print DEBUG-level logs!
2021/08/05 08:20:42.713602 TRACE Logger Print TRACE-level logs!
2021/08/05 08:20:42.716940 ALL Logger Print ALL-level logs!
Specifying the Log Level and Output Stream
In the following example, the first part specifies the print level as ERROR and the output stream as the error_log.txt file, and the second part specifies the print level as WARN and the output stream as the warn_log.txt file.
Code:
import std.fs.*
import std.log.*
main(): Int64 {
let logger: SimpleLogger = SimpleLogger()
logger.level = LogLevel.ERROR
var s = File("./error_log.txt", OpenOption.CreateOrTruncate(false))
logger.setOutput(s)
logger.log(LogLevel.ERROR, "============== The log level is ERROR.================")
logger.log(LogLevel.ERROR,
"=============="+logger.level.toString()+"================")
logger.log (LogLevel.OFF, "Print OFF-level logs!")
logger.log(LogLevel.ERROR, "Print ERROR-level logs!")
logger.log(LogLevel.WARN, "Print WARN-level logs!")
logger.log(LogLevel.INFO, "Print INFO-level logs!")
logger.log(LogLevel.DEBUG, "Print DEBUG-level logs!")
logger.log(LogLevel.TRACE, "Print TRACE-level logs!")
logger.log(LogLevel.ALL, "Print ALL-level logs!")
logger.flush()
s.close()
logger.level = LogLevel.WARN
s = File("./warn_log.txt", OpenOption.CreateOrTruncate(false))
logger.setOutput(s)
logger.log(LogLevel.WARN, "============== The log level is WARN.================")
logger.log(LogLevel.WARN,
"=============="+logger.level.toString()+"================")
logger.log (LogLevel.OFF, "Print OFF-level logs!")
logger.log(LogLevel.ERROR, "Print ERROR-level logs!")
logger.log(LogLevel.WARN, "Print WARN-level logs!")
logger.log(LogLevel.INFO, "Print INFO-level logs!")
logger.log(LogLevel.DEBUG, "Print DEBUG-level logs!")
logger.log(LogLevel.TRACE, "Print TRACE-level logs!")
logger.log(LogLevel.ALL, "Print ALL-level logs!")
logger.flush()
s.close()
0
}
Running result:
$ cat error_log.txt
2021/08/05 08:28:29.667441 ERROR Logger ============== The log level is ERROR.================
2021/08/05 08:28:29.671402 ERROR Logger ==============ERROR================
2021/08/05 08:28:29.674891 ERROR Logger Print ERROR-level logs!
$ cat warn_log.txt
2021/08/05 08:28:29.678978 WARN Logger ============== The log level is WARN.================
2021/08/05 08:28:29.682635 WARN Logger ==============WARN================
2021/08/05 08:28:29.686126 ERROR Logger Print ERROR-level logs!
2021/08/05 08:28:29.689561 WARN Logger Print WARN-level logs!