39 return sConfigMgr->GetIntDefault(base.c_str(), value);
45 return sConfigMgr->GetStringDefault(base.c_str(), value);
50 AppenderMap::iterator it =
appenders.begin();
51 while (it !=
appenders.end() && it->second && it->second->getName() != name)
54 return it ==
appenders.end() ? NULL : it->second;
59 if (appenderName.empty())
65 std::string options =
sConfigMgr->GetStringDefault(appenderName.c_str(),
"");
70 size_t size = tokens.
size();
71 std::string name = appenderName.substr(9);
75 fprintf(stderr,
"Log::CreateAppenderFromConfig: Wrong configuration for appender %s. Config line: %s\n", name.c_str(), options.c_str());
85 fprintf(stderr,
"Log::CreateAppenderFromConfig: Wrong Log Level %d for appender %s\n",
static_cast<int>(level), name.c_str());
105 std::string filename;
106 std::string mode =
"a";
110 fprintf(stderr,
"Log::CreateAppenderFromConfig: Missing file name for appender %s\n", name.c_str());
121 size_t dot_pos = filename.find_last_of(
".");
122 if (dot_pos != filename.npos)
130 maxFileSize = atoi(*iter++);
144 fprintf(stderr,
"Log::CreateAppenderFromConfig: Unknown type %d for appender %s\n",
static_cast<int>(type), name.c_str());
151 if (appenderName.empty())
157 std::string options =
sConfigMgr->GetStringDefault(appenderName.c_str(),
"");
158 std::string name = appenderName.substr(7);
162 fprintf(stderr,
"Log::CreateLoggerFromConfig: Missing config option Logger.%s\n", name.c_str());
169 if (tokens.
size() != 2)
171 fprintf(stderr,
"Log::CreateLoggerFromConfig: Wrong config option Logger.%s=%s\n", name.c_str(), options.c_str());
178 fprintf(stderr,
"Error while configuring Logger %s. Already defined\n", name.c_str());
185 fprintf(stderr,
"Log::CreateLoggerFromConfig: Wrong Log Level %u for logger %s\n", type, name.c_str());
189 logger.
Create(name, level);
192 std::istringstream ss(*iter);
204 fprintf(stderr,
"Error while configuring Appender %s in Logger %s. Appender does not exist", str.c_str(), name.c_str());
211 std::list<std::string> keys =
sConfigMgr->GetKeysByString(
"Appender.");
213 while (!keys.empty())
222 std::list<std::string> keys =
sConfigMgr->GetKeysByString(
"Logger.");
224 while (!keys.empty())
233 fprintf(stderr,
"Wrong Loggers configuration. Review your Logger config section.\n"
234 "Creating default loggers [root (Error), server (Info)] to console\n");
261 msg->
text.append(
"\n");
274 time_t t = time(NULL);
278 snprintf(buf,
sizeof(buf),
"%u-%u-%u_%u-%u-%u",
uint32(aTm.tm_year + 1900),
uint32(aTm.tm_mon + 1),
uint32(aTm.tm_mday),
uint32(aTm.tm_hour),
uint32(aTm.tm_min),
uint32(aTm.tm_sec));
279 return std::string(buf);
290 LoggerMap::iterator it =
loggers.begin();
291 while (it !=
loggers.end() && it->second.getName() != name)
297 it->second.setLogLevel(newLevel);
316 std::ostringstream ss;
317 ss <<
"== START DUMP == (account: " << accountId <<
" guid: " << guid <<
" name: " << name
318 <<
")\n" << str <<
"\n== END DUMP ==\n";
321 std::ostringstream param;
322 param << guid <<
'_' << name;
324 msg->
param1 = param.str();
342 std::ostringstream ss;
373 if (
sConfigMgr->GetBoolDefault(
"Log.Async.Enable",
false))
@ APPENDER_FLAGS_USE_TIMESTAMP
int32 GetConfigIntDefault(std::string base, const char *name, int32 value)
std::string GetConfigStringDefault(std::string base, const char *name, const char *value)
void InitColors(const std::string &init_str)
void setLogLevel(LogLevel)
bool ShouldLog(std::string const &type, LogLevel level) const
void CreateAppenderFromConfig(std::string const &name)
Appender * GetAppenderByName(std::string const &name)
void SetRealmId(uint32 id)
void write(LogMessage *msg) const
bool SetLogLevel(std::string const &name, char const *level, bool isLogger=true)
std::string m_logsTimestamp
void ReadAppendersFromConfig()
static std::string GetTimestampStr()
void void outCommand(uint32 account, const char *str,...) ATTR_PRINTF(3
void vlog(std::string const &f, LogLevel level, char const *str, va_list argptr)
void CreateLoggerFromConfig(std::string const &name)
void void void outCharDump(char const *str, uint32 account_id, uint32 guid, char const *name)
void ReadLoggersFromConfig()
Logger const * GetLoggerByType(std::string const &type) const
void addAppender(uint8 type, Appender *)
void write(LogMessage &message) const
void Create(std::string const &name, LogLevel level)
std::string const & getName() const
StorageType::const_iterator const_iterator
const_iterator begin() const
bool LocalTime(time_t const &time, tm &result)