The Battle for Wesnoth  1.17.12+dev
Classes | Typedefs | Enumerations | Functions | Variables
lg Namespace Reference


class  log_domain
class  log_in_progress
class  logger
class  redirect_output_setter
 Helper class to redirect the output of the logger in a certain scope. More...
class  scope_logger


typedef std::map< std::string, int > domain_map
typedef std::pair< const std::string, int > logd


enum  severity { LG_ERROR =0, LG_WARN =1, LG_INFO =2, LG_DEBUG =3 }


bool is_not_log_file (const std::string &fn)
 Helper function for rotate_logs. More...
void rotate_logs (const std::string &log_dir)
 Deletes old log files from the log directory. More...
std::string unique_log_filename ()
 Generates a unique log file name. More...
void set_log_to_file ()
std::string & get_log_file_path ()
void set_log_file_path (const std::string &path)
void timestamps (bool t)
void precise_timestamps (bool pt)
loggererr ()
loggerwarn ()
loggerinfo ()
loggerdebug ()
log_domaingeneral ()
bool set_log_domain_severity (const std::string &name, int severity)
bool set_log_domain_severity (const std::string &name, const logger &lg)
bool get_log_domain_severity (const std::string &name, int &severity)
std::string list_logdomains (const std::string &filter)
void set_strict_severity (int severity)
void set_strict_severity (const logger &lg)
bool broke_strict ()
std::string get_timestamp (const std::time_t &t, const std::string &format)
std::string get_timespan (const std::time_t &t)
static void print_precise_timestamp (std::ostream &out) noexcept
std::string sanitize_log (const std::string &logstr)
std::stringstream & log_to_chat ()
 Use this to show WML errors in the ingame chat. More...
void early_log_file_setup (bool disable)
 Sets up the initial temporary log file. More...
void enable_native_console_output ()
 Switches to using a native console instead of log file redirection. More...
bool using_own_console ()
 Returns true if a console was allocated by the Wesnoth process. More...
void finish_log_file_setup ()
 Relocates the stdout+stderr log file to the user data directory. More...


static domain_mapdomains
static int strict_level_ = -1
static log_domain dom ("general")
static bool strict_threw_ = false
const std::string log_file_prefix = "wesnoth-"
const std::string log_file_suffix = ".log"
const unsigned max_logs = 8
static bool disable_redirect

Typedef Documentation

◆ domain_map

typedef std::map<std::string, int> lg::domain_map

Definition at line 164 of file log.cpp.

◆ logd

typedef std::pair<const std::string, int> lg::logd

Definition at line 110 of file log.hpp.

Enumeration Type Documentation

◆ severity


Definition at line 73 of file log.hpp.

Function Documentation

◆ broke_strict()

bool lg::broke_strict ( )

◆ debug()

logger & lg::debug ( )

◆ early_log_file_setup()

void lg::early_log_file_setup ( bool  disable)

Sets up the initial temporary log file.

This has to be done on demand (preferably as early as possible) from a function rather than during static initialization, otherwise things go horribly wrong as soon as we try to use the logging facilities internally for debug messages.

Definition at line 378 of file log_windows.cpp.

Referenced by finish_log_file_setup(), and main().

◆ enable_native_console_output()

void lg::enable_native_console_output ( )

Switches to using a native console instead of log file redirection.

In this mode, the log file is closed (if it was created in the first place) and output is sent directly to an attached or allocated console instead. This is used to implement the –wconsole command line option.

Using a native console instead of a file has the benefit of allowing to see output in real time or redirecting it to a user-specified file.

Definition at line 392 of file log_windows.cpp.

Referenced by main().

◆ err()

logger & lg::err ( )

◆ finish_log_file_setup()

void lg::finish_log_file_setup ( )

Relocates the stdout+stderr log file to the user data directory.

This function exits the process if something goes wrong (including calling it when the user data directory isn't known yet).

Definition at line 407 of file log_windows.cpp.

References early_log_file_setup(), ERR_LS, filesystem::file_exists(), filesystem::get_logs_dir(), filesystem::make_directory(), and rotate_logs().

Referenced by filesystem::setup_user_data_dir().

◆ general()

log_domain & lg::general ( )

◆ get_log_domain_severity()

bool lg::get_log_domain_severity ( const std::string &  name,
int &  severity 

Definition at line 234 of file log.cpp.

Referenced by gui2::dialogs::log_settings::pre_show(), and game_config::set_debug().

◆ get_log_file_path()

std::string & lg::get_log_file_path ( )

Definition at line 144 of file log.cpp.

References output_file_path_.

Referenced by lg::logger::get_name().

◆ get_timespan()

std::string lg::get_timespan ( const std::time_t &  t)

◆ get_timestamp()

std::string lg::get_timestamp ( const std::time_t &  t,
const std::string &  format 

◆ info()

logger & lg::info ( )

Definition at line 182 of file log.cpp.

Referenced by ad_hoc_addon_fetch_session(), game_events::event_handlers::add_event_handler(), server_base::async_send_error(), server_base::async_send_warning(), BOOST_AUTO_TEST_CASE(), events::chat_handler::change_logging(), check_error(), campaignd::command_line::command_line(), commandline_options::commandline_options(), addons_client::connect(), deprecated_message(), addon_info::description_translated(), addon_info::display_title_translated(), game_config::dist_channel_id(), addons_client::do_resolve_addon_dependencies(), gui2::dialogs::editor_edit_side::editor_edit_side(), ai::default_recruitment::recruitment::execute(), gui2::dialogs::mp_lobby::game_filter_init(), help::generate_terrain_sections(), get_addon_install_info(), theme::get_basic_theme_info(), ai::default_recruitment::recruitment::get_cheapest_unit_cost_for_leader(), gui2::get_mp_tooltip(), lg::logger::get_name(), gui2::dialogs::addon_manager::get_status_filter_visibility(), wesnothd::server::handle_player_in_game(), campaignd::server::handle_read_from_fifo(), game_lua_kernel::impl_get_terrain_info(), intf_log(), game_config_manager::load_game_config_with_loadscreen(), main(), ng::depcheck::manager::manager(), gui2::dialogs::addon_manager::on_addon_select(), gui2::dialogs::addon_manager::on_selected_version_change(), gui2::dialogs::mp_connect::on_server_add(), gui2::dialogs::mp_lobby::open_profile_url(), help::unit_topic_generator::operator()(), gui2::dialogs::outro::outro(), spirit_po::catalog_metadata::parse_header(), commandline_options::parse_log_strictness(), gui2::dialogs::mp_create_game::pre_show(), gui2::dialogs::mp_lobby::process_network_data(), playmp_controller::process_oos(), events::pump(), game_events::wml_event_pump::put_wml_message(), run_campaignd(), gui2::addon_list::select_addon(), unit_type_data::set_config(), gui2::dialogs::log_settings::set_logger(), editor::map_context::set_needs_terrain_rebuild(), translation::sngettext(), gui2::dialogs::mp_create_game::sync_with_depcheck(), addon_info::translated_info(), unit_moves(), gui2::lobby_player_list_helper::update(), and sdl::window::window().

◆ is_not_log_file()

bool lg::is_not_log_file ( const std::string &  fn)

Helper function for rotate_logs.

Definition at line 83 of file log.cpp.

References log_file_prefix, and log_file_suffix.

Referenced by rotate_logs().

◆ list_logdomains()

std::string lg::list_logdomains ( const std::string &  filter)

◆ log_to_chat()

std::stringstream & lg::log_to_chat ( )

◆ precise_timestamps()

void lg::precise_timestamps ( bool  pt)

◆ print_precise_timestamp()

static void lg::print_precise_timestamp ( std::ostream &  out)

Definition at line 291 of file log.cpp.

References c.

Referenced by lg::log_in_progress::operator|().

◆ rotate_logs()

void lg::rotate_logs ( const std::string &  log_dir)

Deletes old log files from the log directory.

Definition at line 92 of file log.cpp.

References filesystem::delete_file(), ERR_LS, filesystem::get_files_in_dir(), is_not_log_file(), LOG_LS, max_logs, and game_config::path.

Referenced by finish_log_file_setup(), and filesystem::setup_user_data_dir().

◆ sanitize_log()

std::string lg::sanitize_log ( const std::string &  logstr)

Definition at line 303 of file log.cpp.

Referenced by lg::logger::get_name(), and lg::log_in_progress::operator|().

◆ set_log_domain_severity() [1/2]

bool lg::set_log_domain_severity ( const std::string &  name,
int  severity 

◆ set_log_domain_severity() [2/2]

bool lg::set_log_domain_severity ( const std::string &  name,
const logger lg 

Definition at line 230 of file log.cpp.

References lg::logger::get_severity(), and set_log_domain_severity().

◆ set_log_file_path()

void lg::set_log_file_path ( const std::string &  path)

Definition at line 148 of file log.cpp.

References game_config::path.

Referenced by lg::logger::get_name().

◆ set_log_to_file()

void lg::set_log_to_file ( )

Definition at line 135 of file log.cpp.

References filesystem::get_logs_dir(), filesystem::ostream_file(), output_file_, and unique_log_filename().

Referenced by main().

◆ set_strict_severity() [1/2]

void lg::set_strict_severity ( int  severity)

◆ set_strict_severity() [2/2]

void lg::set_strict_severity ( const logger lg)

Definition at line 257 of file log.cpp.

References lg::logger::get_severity(), and set_strict_severity().

◆ timestamps()

void lg::timestamps ( bool  t)

Definition at line 167 of file log.cpp.

References t, and timestamp.

Referenced by BOOST_AUTO_TEST_CASE(), lg::logger::get_name(), main(), and run_campaignd().

◆ unique_log_filename()

std::string lg::unique_log_filename ( )

Generates a unique log file name.

Definition at line 121 of file log.cpp.

References randomness::mt_rng::get_next_random(), log_file_prefix, and log_file_suffix.

Referenced by set_log_to_file().

◆ using_own_console()

bool lg::using_own_console ( )

Returns true if a console was allocated by the Wesnoth process.

Returns false if no native console or if it was attached from a parent process.

Definition at line 402 of file log_windows.cpp.

Referenced by do_gameloop().

◆ warn()

logger & lg::warn ( )

Variable Documentation

◆ disable_redirect

bool lg::disable_redirect

Definition at line 376 of file log_windows.cpp.

◆ dom

log_domain lg::dom("general")

Referenced by debug(), and general().

◆ domains

domain_map* lg::domains

◆ log_file_prefix

const std::string lg::log_file_prefix = "wesnoth-"

Definition at line 66 of file log.hpp.

Referenced by is_not_log_file(), and unique_log_filename().

◆ log_file_suffix

const std::string lg::log_file_suffix = ".log"

Definition at line 67 of file log.hpp.

Referenced by is_not_log_file(), and unique_log_filename().

◆ max_logs

const unsigned lg::max_logs = 8

Definition at line 71 of file log.hpp.

Referenced by rotate_logs().

◆ strict_level_

int lg::strict_level_ = -1

Definition at line 166 of file log.cpp.

◆ strict_threw_

bool lg::strict_threw_ = false

Definition at line 261 of file log.cpp.

Referenced by broke_strict().