You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.4 KiB
73 lines
1.4 KiB
# cpp_logger_assignment
|
|
|
|
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;
|
|
```
|
|
|