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!