Go to the documentation of this file.
9 #ifndef EAGINE_LOGGING_ROOT_LOGGER_HPP
10 #define EAGINE_LOGGING_ROOT_LOGGER_HPP
12 #include "../program_args.hpp"
18 class application_config;
29 :
logger{logger_id, {_init_backend(args, opts)}} {
45 static auto _init_backend(
const program_args&,
const root_logger_options&)
46 -> std::unique_ptr<logger_backend>;
48 auto _log_git_info() -> void;
49 auto _log_compiler_info() -> void;
50 auto _log_instance_info() -> void;
51 auto _log_args(
const program_args&) -> void;
56 #if !EAGINE_LINK_LIBRARY || defined(EAGINE_IMPLEMENTING_LIBRARY)
57 #include <eagine/logging/root_logger.inl>
60 #endif // EAGINE_LOGGING_ROOT_LOGGER_HPP
#define EAGINE_ID(NAME)
Macro for constructing instances of eagine::identifier.
Definition: identifier.hpp:353
root_logger(const program_args &args, const root_logger_options &opts)
Constructor initializing from program arguments and logger options.
Definition: root_logger.hpp:37
Common code is placed in this namespace.
Definition: eagine.hpp:21
Structure holding root logger customization options.
Definition: root_logger_opts.hpp:16
Class wrapping the main function arguments, providing a convenient API.
Definition: program_args.hpp:1082
root_logger(const program_args &args)
Constructor initializing the root logger from program arguments.
Definition: root_logger.hpp:41
Class typically used as the per-application single root of logger hierarchy.
Definition: root_logger.hpp:22
Standalone logger object type.
Definition: logger.hpp:427
root_logger(identifier logger_id, const program_args &args, const root_logger_options &opts)
Constructor initializing from and id, program arguments and options.
Definition: root_logger.hpp:25