Core/Logs: Create default set of loggers and Appender if the config is wrong.

- Logger root (Error)
- Logger server (Info)
- Appender Console

Logger names are case-sensitive, Appender names are not.
This commit is contained in:
Spp
2013-11-08 08:55:10 +01:00
parent 98a7a22368
commit 1b04bec290
2 changed files with 17 additions and 12 deletions

View File

@@ -237,15 +237,7 @@ Appender.Auth=2,2,0,Auth.log,w
# (Using spaces as separator).
#
Logger.Root=0,3,Console Auth
#
# Loggers
# Description: List of Loggers to read from config
# (Using spaces as separator).
# Default: "root"
Loggers=Root
Logger.root=3,Console Auth
#
###################################################################################################

View File

@@ -237,11 +237,24 @@ void Log::ReadLoggersFromConfig()
keys.pop_front();
}
// root logger must exist. Marking as disabled as its not configured
// Bad config configuration, creating default config
if (loggers.find(LOGGER_ROOT) == loggers.end())
{
fprintf(stdout, "Wrong Loggers configuration, Logger.root needs to exist, nothing will be logged.\n");
loggers[LOGGER_ROOT].Create(LOGGER_ROOT, LOG_LEVEL_DISABLED);
fprintf(stderr, "Wrong Loggers configuration. Review your Logger config section.\n"
"Creating default loggers [root (Error), server (Info)] to console\n");
Close(); // Clean any Logger or Appender created
AppenderConsole* appender = new AppenderConsole(NextAppenderId(), "Console", LOG_LEVEL_DEBUG, APPENDER_FLAGS_NONE);
appenders[appender->getId()] = appender;
Logger& logger = loggers[LOGGER_ROOT];
logger.Create(LOGGER_ROOT, LOG_LEVEL_ERROR);
logger.addAppender(appender->getId(), appender);
logger = loggers["server"];
logger.Create("server", LOG_LEVEL_ERROR);
logger.addAppender(appender->getId(), appender);
}
}