Core/Logging: Fixed a possible crash with dynamic log file names
This commit is contained in:
@@ -139,7 +139,7 @@ class Appender
|
|||||||
static const char* getLogFilterTypeString(LogFilterType type);
|
static const char* getLogFilterTypeString(LogFilterType type);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void _write(LogMessage& /*message*/) {};
|
virtual void _write(LogMessage& /*message*/) = 0;
|
||||||
|
|
||||||
uint8 id;
|
uint8 id;
|
||||||
std::string name;
|
std::string name;
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ AppenderFile::AppenderFile(uint8 id, std::string const& name, LogLevel level, co
|
|||||||
{
|
{
|
||||||
dynamicName = std::string::npos != filename.find("%u");
|
dynamicName = std::string::npos != filename.find("%u");
|
||||||
backup = _flags & APPENDER_FLAGS_MAKE_FILE_BACKUP;
|
backup = _flags & APPENDER_FLAGS_MAKE_FILE_BACKUP;
|
||||||
|
|
||||||
logfile = !dynamicName ? OpenFile(_filename, _mode, backup) : NULL;
|
logfile = !dynamicName ? OpenFile(_filename, _mode, backup) : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,7 +54,10 @@ void AppenderFile::_write(LogMessage& message)
|
|||||||
fflush(logfile);
|
fflush(logfile);
|
||||||
|
|
||||||
if (dynamicName)
|
if (dynamicName)
|
||||||
|
{
|
||||||
fclose(logfile);
|
fclose(logfile);
|
||||||
|
logfile = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user