MCPcopy Create free account
hub / github.com/KikoPlayProject/KikoPlay / writeLogFile

Method writeLogFile

Common/logger.cpp:132–168  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

130}
131
132void Logger::writeLogFile(Logger::LogType type)
133{
134 QString datePrefix = QDateTime::currentDateTime().toString("yyyy-MM-dd");
135 QString logFileName = QString("%1/%2_%3.log").arg(logFolder, datePrefix, typeIdentity[(int)type]);
136 if(!logFiles[(int)type] || logFiles[(int)type]->fileName()!=logFileName)
137 {
138 logFiles[(int)type] = QSharedPointer<QFile>::create(logFileName);
139 if(!logFiles[(int)type]->open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text))
140 {
141 logFiles[(int)type] = nullptr;
142 return;
143 }
144 }
145 if(logFiles[(int)type]->size() > maxLogFileSize)
146 {
147 logFiles[(int)type]->remove();
148 logFiles[(int)type] = QSharedPointer<QFile>::create(logFileName);
149 if(!logFiles[(int)type]->open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text))
150 {
151 logFiles[(int)type] = nullptr;
152 return;
153 }
154 log(LogType::APP, QString("Reset Big Log File: %1").arg(logFileName));
155 }
156 auto &curLogBuffer = logBuffer[(int)type];
157 for(int i = flushPos[(int)type]; i < curLogBuffer.size(); ++i)
158 {
159 logFiles[(int)type]->write(curLogBuffer[i].toUtf8().constData());
160 logFiles[(int)type]->write("\n");
161 }
162 logFiles[(int)type]->flush();
163 while(curLogBuffer.size() > bufferSize)
164 {
165 curLogBuffer.pop_front();
166 }
167 flushPos[(int)type] = curLogBuffer.size();
168}
169

Callers

nothing calls this directly

Calls 7

QStringClass · 0.85
openMethod · 0.80
toStringMethod · 0.45
sizeMethod · 0.45
removeMethod · 0.45
writeMethod · 0.45
flushMethod · 0.45

Tested by

no test coverage detected