From e5f6ab5c4d366e6c5fc0ebd746c119064566b212 Mon Sep 17 00:00:00 2001 From: Alexander Zhirov <alexander@zhirov.su> Date: Thu, 1 Jun 2023 18:23:07 +0300 Subject: [PATCH] v0.3.2 - Printing information about the type of the logged message to the standard output stream and file - Printing the date and time to the standard output stream --- CHANGELOG.md | 5 +++++ README.md | 4 +++- source/singlog.d | 20 +++++++++++--------- tests/output.png | Bin 0 -> 22363 bytes 4 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 tests/output.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ba884f..90e1f38 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## [v0.3.2](https://git.zhirov.kz/dlang/singlog/compare/v0.3.1...v0.3.2) (2023.06.01) + +- Printing information about the type of the logged message to the standard output stream and file +- Printing the date and time to the standard output stream + ## [v0.3.1](https://git.zhirov.kz/dlang/singlog/compare/v0.3.0...v0.3.1) (2023.05.30) ### Bug fixes diff --git a/README.md b/README.md index 8d57452..039b392 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,8 @@ void main(string[] argv) { } ``` +![output](tests/output.png) + ## Examples Setting the name of the logged program (it matters for Windows OS): @@ -75,4 +77,4 @@ log.d("Debugging message") => log.debugging("Debugging message"); ## DUB -Add a dependency on `"singlog": "~>0.3.1"`. +Add a dependency on `"singlog": "~>0.3.2"`. diff --git a/source/singlog.d b/source/singlog.d index 30976db..0202885 100644 --- a/source/singlog.d +++ b/source/singlog.d @@ -109,11 +109,13 @@ version(Windows) { int msgOutput = STDOUT; int msgLevel = INFORMATION; - void writeLog(string message, int msgLevel) { + void writeLog(string message, string type, int msgLevel) { if (this.msgLevel > msgLevel) return; if (this.msgOutput & 1) syslog(sysLevel[msgLevel], message.toStringz()); + if (this.msgOutput & 6) + message = format("%s [%s]: %s", Clock.currTime().format("%Y.%m.%d %H:%M:%S"), type, message); if (this.msgOutput & 2) writeln(message); if (this.msgOutput & 4) @@ -142,7 +144,7 @@ version(Windows) { } try { - file.writeln(Clock.currTime().format("%Y.%m.%d %H:%M:%S: ") ~ message); + file.writeln(message); } catch (Exception e) { this.writeToFile = false; this.error("Unable to write to the log file " ~ this.path); @@ -173,13 +175,13 @@ public: Log file(string path) { this.path = path; return this.log; } Log level(int msgLevel) { this.msgLevel = msgLevel; return this.log; } - void alert(T)(T message) { writeLog(message.to!string, ALERT); } - void critical(T)(T message) { writeLog(message.to!string, CRITICAL); } - void error(T)(T message) { writeLog(message.to!string, ERROR); } - void warning(T)(T message) { writeLog(message.to!string, WARNING); } - void notice(T)(T message) { writeLog(message.to!string, NOTICE); } - void information(T)(T message) { writeLog(message.to!string, INFORMATION); } - void debugging(T)(T message) { writeLog(message.to!string, DEBUGGING); } + void alert(T)(T message) { writeLog(message.to!string, "ALERT", ALERT); } + void critical(T)(T message) { writeLog(message.to!string, "CRITICAL", CRITICAL); } + void error(T)(T message) { writeLog(message.to!string, "ERROR", ERROR); } + void warning(T)(T message) { writeLog(message.to!string, "WARNING", WARNING); } + void notice(T)(T message) { writeLog(message.to!string, "NOTICE", NOTICE); } + void information(T)(T message) { writeLog(message.to!string, "INFORMATION", INFORMATION); } + void debugging(T)(T message) { writeLog(message.to!string, "DEBUGGING", DEBUGGING); } alias a = alert; alias c = critical; diff --git a/tests/output.png b/tests/output.png new file mode 100644 index 0000000000000000000000000000000000000000..7d024e3364af1223beb8a6894504e376acba7b84 GIT binary patch literal 22363 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⊥;XEuiC*ISvX9y+B7eoySk1=wD8|O4#%#+ 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 literal 0 HcmV?d00001