Singleton for simple logging
https://code.dlang.org/packages/singlog
New - Added the ability to output messages to the standard error stream. Now messages above the `WARNING` level will not be output to the `stdout`. To output them, need to use `stderr` - Write message to specific outputs via `log.now` - Now `log.output` allows to set the output as an argument - Now `log.level` allows to set the level as an argument Bug fixes - Fixed streams redirection in Windows |
||
---|---|---|
source | ||
tests | ||
.gitignore | ||
CHANGELOG.md | ||
LICENSE | ||
README.md | ||
dub.json | ||
dub.selections.json | ||
dub.settings.json | ||
logo.png | ||
singlog.png |
README.md
Singleton for simple logging
Basic Usage
import singlog;
void main(string[] argv) {
log.output(log.output.syslog.stderr.stdout.file) // write to syslog, standard error/output streams and file
.program(argv[0]) // program name as an identifier (for Windows OS)
.level(log.level.debugging) // logging level
.color(true) // color text output
.file("./test.log"); // the path to the log file
log.i("This is an information message");
log.n("This is a notice message");
log.w("This is a warning message");
log.e("This is an error message");
log.c("This is a critical message");
log.a("This is an alert message");
log.d("This is a debug message");
log.now(log.output.stdout).n("This error message will only be written to the standard output stream");
log.now(log.output.syslog.file).c("This error message will only be written to the syslog and file");
}
Examples
Setting the name of the logged program (it matters for Windows OS):
log.program("My program");
Setting the status of color text output (false
by default):
log.color(true);
Setting the error output level:
log.level(log.level.debugging);
log.level(log.level.alert);
log.level(log.level.critical);
log.level(log.level.error);
log.level(log.level.warning);
log.level(log.level.notice);
log.level(log.level.information);
Assigning a target output:
log.output(log.output.syslog.stderr.stdout);
Setup and allowing writing to a file:
log.output(log.output.file);
log.file("./file.log");
Write messages to the log:
log.a("Alert message") => log.alert("Alert message");
log.c("Critical message") => log.critical("Critical message");
log.e("Error message") => log.error("Error message");
log.w("Warning message") => log.warning("Warning message");
log.n("Notice message") => log.notice("Notice message");
log.i("Information message") => log.information("Information message");
log.d("Debugging message") => log.debugging("Debugging message");
Write message to specific outputs:
log.now(log.output.stdout).n("This error message will only be written to the standard output stream");
log.now(log.output.syslog.file).c("This error message will only be written to the syslog and file");
DUB
Add a dependency on "singlog": "~>0.5.0"
.