parent
4b7a1cb96a
commit
fb2ca5cbd0
@ -1,3 +1,72 @@
|
|||||||
# cpp_logger_assignment
|
# cpp_logger_assignment
|
||||||
|
|
||||||
Programming exercise to implement a logger class
|
Programming exercise to implement a logger class
|
||||||
|
|
||||||
|
|
||||||
|
Build it with:
|
||||||
|
|
||||||
|
```
|
||||||
|
cmake .
|
||||||
|
make
|
||||||
|
./cpplogger
|
||||||
|
```
|
||||||
|
|
||||||
|
And/or run unit-tests, using [catch2](https://github.com/catchorg/Catch2) as a submodule.
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
git submodule update --init --recursive
|
||||||
|
cmake . -DBUILD_TESTS=ON
|
||||||
|
make
|
||||||
|
./cpplogger_test
|
||||||
|
```
|
||||||
|
|
||||||
|
## The binary can be used as a command line tool:
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
./cpplogger
|
||||||
|
Usage: cpplogger [OPTION]
|
||||||
|
Logs the input (till EOF) to the console or to a file.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-c, log to console
|
||||||
|
-f FILE log to FILE
|
||||||
|
-t, prefix lines with timestamp
|
||||||
|
-n, prefix lines with hostname
|
||||||
|
-u, prefix lines with user name
|
||||||
|
-h print this help
|
||||||
|
|
||||||
|
Option -c and -f are mutually exclusive, specify one.
|
||||||
|
|
||||||
|
Homepage: <https://gitea.matetelki.eu/denes/cpp_logger_assignment>
|
||||||
|
Author: Denes Matetelki <denes@matetelki.com>
|
||||||
|
```
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
```
|
||||||
|
./cpplogger -t -u -c
|
||||||
|
hello world
|
||||||
|
Mon Nov 11 16:01:03 2019 dmatetelki hello world
|
||||||
|
how is it going
|
||||||
|
Mon Nov 11 16:01:09 2019 dmatetelki how is it going<CTRL+D>
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
cat /tmp/this.txt | ./cpplogger -f /tmp/that.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Or used as a library
|
||||||
|
|
||||||
|
```
|
||||||
|
#include <Logger.hpp>
|
||||||
|
|
||||||
|
Logger::getInstance()->setStream(std::ostream* os);
|
||||||
|
|
||||||
|
Logger::getInstance()->setPrintTimeStamp(true);
|
||||||
|
Logger::getInstance()->setPrintUserName(false);
|
||||||
|
|
||||||
|
LOG << word1 << word2 << variable << END;
|
||||||
|
```
|
||||||
|
|
||||||
|
Loading…
Reference in new issue