diff options
| author | 2017-02-05 19:05:27 +0000 | |
|---|---|---|
| committer | 2017-02-28 05:19:12 +0000 | |
| commit | 7c301149883e038a4bf3ce4a7a9a6a91b3e1ce97 (patch) | |
| tree | 5e698c3b99e9c3addf516a2dcd7b3b2686fc15cb /src/logger.cpp | |
| parent | Merge pull request #1287 from SaberUK/master+filter-docs (diff) | |
Allow <log> tags to specify how often logs should be flushed.
Also use the behaviour behind this to fix #1290.
Diffstat (limited to 'src/logger.cpp')
| -rw-r--r-- | src/logger.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/logger.cpp b/src/logger.cpp index 5b4a948ee..e3e956325 100644 --- a/src/logger.cpp +++ b/src/logger.cpp @@ -120,7 +120,7 @@ void LogManager::OpenFileLogs() struct tm *mytime = gmtime(&time); strftime(realtarget, sizeof(realtarget), target.c_str(), mytime); FILE* f = fopen(realtarget, "a"); - fw = new FileWriter(f); + fw = new FileWriter(f, static_cast<unsigned int>(tag->getInt("flush", 20, 1, INT_MAX))); logmap.insert(std::make_pair(target, fw)); } else @@ -309,8 +309,10 @@ void LogManager::Log(const std::string &type, LogLevel loglevel, const std::stri } -FileWriter::FileWriter(FILE* logfile) -: log(logfile), writeops(0) +FileWriter::FileWriter(FILE* logfile, unsigned int flushcount) + : log(logfile) + , flush(flushcount) + , writeops(0) { } @@ -322,7 +324,7 @@ void FileWriter::WriteLogLine(const std::string &line) // throw CoreException("FileWriter::WriteLogLine called with a closed logfile"); fputs(line.c_str(), log); - if (++writeops % 20 == 0) + if (++writeops % flush == 0) { fflush(log); } |
