/* @file log_config.hpp */ #pragma once #include "log_level.hpp" #include "function.hpp" #include "color.hpp" #include namespace xo { /* Tag here b/c we want header-only library */ template struct log_config_impl { /* display log messages with severity >= .log_level */ static log_level min_log_level; /* true to log local time */ static bool time_enabled; /* true to log time-of-day in local coords; false for UTC coords */ static bool time_local_flag; /* true to log time-of-day with microsecond precision; false for millisecond precision */ static bool time_usec_flag; /* spaces per nesting level. 0 -> no indenting */ static std::uint32_t indent_width; /* max #of spaces to introduce when indenting */ static std::uint32_t max_indent_width; /* if true enable explicit nesting level display [nnn] */ static bool nesting_level_enabled; /* color to use for explicit nesting level */ static color_spec_type nesting_level_color; /* display style for function names. FS_Simple|FS_Pretty|FS_Streamlined */ static function_style style; /* color to use for function name, on entry/exit (xo::scope creation/destruction) * (ansi color codes, see Select Graphics Rendition subset) */ static color_spec_type function_entry_color; static color_spec_type function_exit_color; /* if true, append [file:line] to output */ static bool location_enabled; /* when .location_enabled, write [file:line] starting this many chars from left margin */ static std::uint32_t location_tab; /* color to use for code location */ static color_spec_type code_location_color; }; /*log_config_impl*/ template log_level log_config_impl::min_log_level = log_level::default_level; template bool log_config_impl::time_enabled = 1; template bool log_config_impl::time_local_flag = true; template bool log_config_impl::time_usec_flag = true; template std::uint32_t log_config_impl::indent_width = 2; template std::uint32_t log_config_impl::max_indent_width = 32; template bool log_config_impl::nesting_level_enabled = true; template color_spec_type log_config_impl::nesting_level_color = color_spec_type::xterm(195); template function_style log_config_impl::style = FS_Streamlined; template color_spec_type log_config_impl::function_entry_color = color_spec_type::ansi(34); template color_spec_type log_config_impl::function_exit_color = color_spec_type::ansi(32); template bool log_config_impl::location_enabled = true; template std::uint32_t log_config_impl::location_tab = 80; template color_spec_type log_config_impl::code_location_color = color_spec_type::red(); using log_config = log_config_impl; } /*namespace xo*/ /* end log_config.hpp */