Using the Logger from Fair ========================== For a complete documentation please refer to the FairLogger `documentation `_. Usage inside the Code --------------------- The basic syntax is .. code-block:: C++ LOG(info) << "My information"; **Severity keywords** With `LOG()` you can mark the messaged by severity. The higher severity levels also print the lower levels, e.g. `info` will print `warn`, too. Most people in Panda use `info`, `warn` and `error`. .. code-block:: C++ "trace" "debug4" "debug3" "debug2" "debug1" "debug" "info" "state" "warn" "error" "fatal" "nolog" Options in a ROOT macro ----------------------- To set the Logger options inside your Root macro follow this structure, which will give a lot of information .. code-block:: C++ #include int myacro() { fair::Logger::SetConsoleColor(true); fair::Logger::SetVerbosity("veryhigh"); ... } **Coloured console output** Adds a nice and easy way to spot errors by the colored keywords. `fair::Logger::SetConsoleColor(true);` Be aware that this should be off when logging to a file, because the coloring is performed by escape sequences which will clog your logs. **Logger Verbosity** Here you can adjust what the logger puts in front of the actual message. There are custom verbosity levels as well, if needed.:: verylow: message low: [severity] message medium: [HH:MM:SS][severity] message high: [process_name][HH:MM:SS][severity] 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 root macro e.g. for simulations, the process will always be ``root.exe`` and the time stamps are only in a few cases of use. This example may be most practical for debugging and results in `[severity][file:line:function] message` .. code-block:: C++ auto spec = fair::VerbositySpec::Make(fair::VerbositySpec::Info::severity, fair::VerbositySpec::Info::file_line_function); fair::Logger::DefineVerbosity("user1", spec); fair::Logger::SetVerbosity("user1"); Here is the list of available:: +-----------------------------------------------+----------------------+ | Argument | Result | +===============================================|======================| | fair::VerbositySpec::Info::process_name | [process_name] | | fair::VerbositySpec::Info::timestamp_s | [HH:MM:SS] | | fair::VerbositySpec::Info::timestamp_us | [HH:MM:SS:µS] | | fair::VerbositySpec::Info::severity | [severity] | | fair::VerbositySpec::Info::file | [file] | | fair::VerbositySpec::Info::file_line | [file:line] | | fair::VerbositySpec::Info::file_line_function | [file:line:function] | +-----------------------------------------------+----------------------+