1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Fix missing warningstream (or similar problem) (#7034)

Use the --color command line parameter instead of a setting for coloured logs

This fixes the missing warningstream bug, g_settings->get mustn't be used there.
Also, the decision about en- or disabling log colours fits better to the command line parameters than minetest settings.
This commit is contained in:
you 2018-03-04 17:34:36 +01:00 committed by SmallJoker
parent 929792e15e
commit 540e07e3ef
5 changed files with 38 additions and 18 deletions

View file

@ -266,6 +266,15 @@ static void set_allowed_options(OptionList *allowed_options)
"'name' lists names, 'both' lists both)"))));
allowed_options->insert(std::make_pair("quiet", ValueSpec(VALUETYPE_FLAG,
_("Print to console errors only"))));
#if !defined(_WIN32)
allowed_options->insert(std::make_pair("color", ValueSpec(VALUETYPE_STRING,
_("Coloured logs ('always', 'never' or 'auto'), defaults to 'auto'"
))));
#else
allowed_options->insert(std::make_pair("color", ValueSpec(VALUETYPE_STRING,
_("Coloured logs ('always' or 'never'), defaults to 'never'"
))));
#endif
allowed_options->insert(std::make_pair("info", ValueSpec(VALUETYPE_FLAG,
_("Print more information to console"))));
allowed_options->insert(std::make_pair("verbose", ValueSpec(VALUETYPE_FLAG,
@ -393,6 +402,17 @@ static void setup_log_params(const Settings &cmd_args)
g_logger.addOutputMaxLevel(&stderr_output, LL_ERROR);
}
// Coloured log messages (see log.h)
if (cmd_args.exists("color")) {
std::string mode = cmd_args.get("color");
if (mode == "auto")
Logger::color_mode = LOG_COLOR_AUTO;
else if (mode == "always")
Logger::color_mode = LOG_COLOR_ALWAYS;
else
Logger::color_mode = LOG_COLOR_NEVER;
}
// If trace is enabled, enable logging of certain things
if (cmd_args.getFlag("trace")) {
dstream << _("Enabling trace level debug output") << std::endl;