mirror of
https://github.com/FairRootGroup/FairLogger.git
synced 2025-10-13 08:41:12 +00:00
Update docs
This commit is contained in:
parent
bb5e67a5e7
commit
2a7d4dfd9a
35
README.md
35
README.md
|
@ -18,6 +18,8 @@ cmake -DCMAKE_INSTALL_PREFIX=./FairLogger_install ../FairLogger
|
||||||
cmake --build . --target install
|
cmake --build . --target install
|
||||||
```
|
```
|
||||||
|
|
||||||
|
FairLogger bundles a version of the [fmt](https://github.com/fmtlib/fmt) library. You can override this with your own fmt installation via the `-DUSE_EXTERNAL_FMT=ON` and `-DFMT_ROOT=/fmt/location` CMake switches.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
In your `CMakeLists.txt`:
|
In your `CMakeLists.txt`:
|
||||||
|
@ -35,6 +37,8 @@ find_package(FairLogger)
|
||||||
|
|
||||||
`find_package(FairLogger)` will define an imported target `FairLogger::FairLogger`.
|
`find_package(FairLogger)` will define an imported target `FairLogger::FairLogger`.
|
||||||
|
|
||||||
|
In case of external fmt, the using project will need to find it.
|
||||||
|
|
||||||
## CMake options
|
## CMake options
|
||||||
|
|
||||||
On command line:
|
On command line:
|
||||||
|
@ -49,7 +53,18 @@ On command line:
|
||||||
|
|
||||||
All log calls go through the provided LOG(severity) macro. Output through this macro is thread-safe. Logging is done to cout, file output and/or custom sinks.
|
All log calls go through the provided LOG(severity) macro. Output through this macro is thread-safe. Logging is done to cout, file output and/or custom sinks.
|
||||||
|
|
||||||
## 2. Severity
|
## 2. Additional macros
|
||||||
|
|
||||||
|
A number of additional logging macros are provided:
|
||||||
|
|
||||||
|
- `LOGV(severity, verbosity)` Log the line with the provided verbosity, e.g. `LOG(info, veryhigh) << "abcd";`
|
||||||
|
- `LOGF(severity, ...)` The arguments are given to `fmt::format` and the result is logged, e.g. `LOGF(info, "Hello {}!", "world");`
|
||||||
|
- `LOGP(severity, ...)` The arguments are given to `fmt::printf` and the result is logged, e.g. `LOGP(info, "Hello %s!", "world");`
|
||||||
|
- `LOGN(severity)` Logs an empty line, e.g. `LOGN(info);`
|
||||||
|
- `LOG_IF(severity, condition)` Logs the line if the provided condition if true
|
||||||
|
- `LOGD(severity, file, line, f)` Logs the line with the provided file, line and function parameters (only if the active verbosity allows it).
|
||||||
|
|
||||||
|
## 3. Severity
|
||||||
|
|
||||||
The log severity is controlled via:
|
The log severity is controlled via:
|
||||||
```C++
|
```C++
|
||||||
|
@ -79,21 +94,25 @@ where severity level is one of the following:
|
||||||
|
|
||||||
Logger will log the chosen severity and all above it (except "nolog", which deactivates logging for that sink completely). Fatal severity is always logged.
|
Logger will log the chosen severity and all above it (except "nolog", which deactivates logging for that sink completely). Fatal severity is always logged.
|
||||||
|
|
||||||
## 3. Verbosity
|
## 4. Verbosity
|
||||||
|
|
||||||
The log verbosity is controlled via:
|
The log verbosity is controlled via:
|
||||||
```C++
|
```C++
|
||||||
fair::Logger::SetVerbosity("<verbosity level>");
|
fair::Logger::SetVerbosity("<verbosity level>");
|
||||||
```
|
```
|
||||||
|
|
||||||
it is same for all sinks, and is one of the following values: `verylow`, `low`, `medium`, `high`, `veryhigh`, which translates to following output:
|
it is same for all sinks, and is one of the following values: `verylow`, `low`, `medium`, `high`, `veryhigh`, `user1`, `user2`, `user3`, `user4`, which translates to following output:
|
||||||
|
|
||||||
```
|
```
|
||||||
verylow: message
|
verylow: message
|
||||||
low: [severity] message
|
low: [severity] message
|
||||||
medium: [HH:MM:SS][severity] message
|
medium: [HH:MM:SS][severity] message
|
||||||
high: [process name][HH:MM:SS:µS][severity] message
|
high: [process name][HH:MM:SS][severity] message
|
||||||
veryhigh: [process name][HH:MM:SS:µS][severity][file:line:function] message
|
veryhigh: [process name][HH:MM:SS:µS][severity][file:line:function] message
|
||||||
|
user1: [severity] message
|
||||||
|
user2: [severity] message
|
||||||
|
user3: [severity] message
|
||||||
|
user4: [severity] message
|
||||||
```
|
```
|
||||||
|
|
||||||
When running a FairMQ device, the log severity can be simply provided via `--verbosity <level>` cmd option.
|
When running a FairMQ device, the log severity can be simply provided via `--verbosity <level>` cmd option.
|
||||||
|
@ -122,7 +141,7 @@ auto spec = fair::VerbositySpec::Make(VerbositySpec::Info::timestamp_s,
|
||||||
| `fair::VerbositySpec::Info::file_line_function` | `[file:line:function]` |
|
| `fair::VerbositySpec::Info::file_line_function` | `[file:line:function]` |
|
||||||
|
|
||||||
|
|
||||||
### 3.1 `BOOST_PRETTY_FUNCTION` support
|
### 4.1 `BOOST_PRETTY_FUNCTION` support
|
||||||
|
|
||||||
By default, the `veryhigh` verbosity prints the function name from which the `LOG` macro was invoked. If you desire a more verbose function signature including the full namespace, return value and function arguments, you can enable support for `BOOST_PRETTY_FUNCTION`
|
By default, the `veryhigh` verbosity prints the function name from which the `LOG` macro was invoked. If you desire a more verbose function signature including the full namespace, return value and function arguments, you can enable support for `BOOST_PRETTY_FUNCTION`
|
||||||
|
|
||||||
|
@ -136,7 +155,7 @@ By default, the `veryhigh` verbosity prints the function name from which the `LO
|
||||||
|
|
||||||
In the latter case, the user needs to take care of adding the boost include path to the compiler search path manually (e.g. `-I/path/to/boost/include`).
|
In the latter case, the user needs to take care of adding the boost include path to the compiler search path manually (e.g. `-I/path/to/boost/include`).
|
||||||
|
|
||||||
## 4. Color
|
## 5. Color
|
||||||
|
|
||||||
Colored output on console can be activated with:
|
Colored output on console can be activated with:
|
||||||
```C++
|
```C++
|
||||||
|
@ -145,7 +164,7 @@ Logger::SetConsoleColor(true);
|
||||||
|
|
||||||
When running a FairMQ device, the log color (console) can be simply provided via `--color <true/false>` cmd option (default is true).
|
When running a FairMQ device, the log color (console) can be simply provided via `--color <true/false>` cmd option (default is true).
|
||||||
|
|
||||||
## 5. File output
|
## 6. File output
|
||||||
|
|
||||||
Output to file can be enabled via:
|
Output to file can be enabled via:
|
||||||
```C++
|
```C++
|
||||||
|
@ -155,7 +174,7 @@ which will add output to "test_log" filename (if third parameter is `true` it wi
|
||||||
|
|
||||||
When running a FairMQ device, the log file can be simply provided via `--log-to-file <filename_prefix>` cmd option (this will also turn off console output).
|
When running a FairMQ device, the log file can be simply provided via `--log-to-file <filename_prefix>` cmd option (this will also turn off console output).
|
||||||
|
|
||||||
## 5.5 Custom sinks
|
## 7. Custom sinks
|
||||||
|
|
||||||
Custom sinks can be added via `Logger::AddCustomSink("sink name", "<severity>", callback)` method.
|
Custom sinks can be added via `Logger::AddCustomSink("sink name", "<severity>", callback)` method.
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ enum class Severity : int
|
||||||
// verylow: message
|
// verylow: message
|
||||||
// low: [severity] message
|
// low: [severity] message
|
||||||
// medium: [HH:MM:SS][severity] message
|
// medium: [HH:MM:SS][severity] message
|
||||||
// high: [process name][HH:MM:SS:µS][severity] message
|
// high: [process name][HH:MM:SS][severity] message
|
||||||
// veryhigh: [process name][HH:MM:SS:µS][severity][file:line:function] message
|
// veryhigh: [process name][HH:MM:SS:µS][severity][file:line:function] message
|
||||||
enum class Verbosity : int
|
enum class Verbosity : int
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user