aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Logging/AppenderFile.cpp
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2014-02-07 22:23:24 +0100
committerjackpoz <giacomopoz@gmail.com>2014-02-07 22:23:24 +0100
commit672e06a951b539492306180c7e4a22bf128bd839 (patch)
tree8490284d0b4d10ddcc8de6773023044b13e8d71e /src/server/shared/Logging/AppenderFile.cpp
parent79e30bbda476d316107af03fd34948b188ab68f6 (diff)
Shared/Logs: Add workaround for "w" flag used with dynamic name files
Ignore "w" flag and always use "a" for log files with dynamic name since the file handle is created at every log line and "w" would delete any other logged line from previous _write() calls. The best solution would be to overwrite only at first call and append at any other call.
Diffstat (limited to 'src/server/shared/Logging/AppenderFile.cpp')
-rw-r--r--src/server/shared/Logging/AppenderFile.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/server/shared/Logging/AppenderFile.cpp b/src/server/shared/Logging/AppenderFile.cpp
index b9c2fd7339d..0d52de89f17 100644
--- a/src/server/shared/Logging/AppenderFile.cpp
+++ b/src/server/shared/Logging/AppenderFile.cpp
@@ -49,7 +49,8 @@ void AppenderFile::_write(LogMessage const& message)
{
char namebuf[TRINITY_PATH_MAX];
snprintf(namebuf, TRINITY_PATH_MAX, filename.c_str(), message.param1.c_str());
- logfile = OpenFile(namebuf, mode, backup || exceedMaxSize);
+ // always use "a" with dynamic name otherwise it could delete the log we wrote in last _write() call
+ logfile = OpenFile(namebuf, "a", backup || exceedMaxSize);
}
else if (exceedMaxSize)
logfile = OpenFile(filename, "w", true);