Birkaç gün önce Qt5 kullanmaya başladım. Uygulamam için bir logger'a ihtiyacım vardı ve qDebug
'u kullanmaya karar verdim, ancak bir dosyada günlükleri olması için "yeniden yönlendirilmiş" olması gerekiyor.Qt5: Bir dosyada oturum açmak için qDebug() nasıl kullanılır, çok parçalı bir uygulama
Bunu yapmak için qInstallMessageHandler
kullanmıştım ve aşağıda gösterildiği gibi kendi işleyicimi yazdım (burada diğer insanlardan ilham).
Çalışıyor gibi görünüyor, ama ben bir guru olmadığım için şunu sormam gerekiyor: Bunu çok-parçalı bir uygulamada kullanmak doğru mudur?
Ayrıca, çok parçalı bir uygulamasında kullanımda/güvenli ise, bir şekilde geliştirilebilir mi?
Teşekkürler!
void MessageHandler(QtMsgType type, const QMessageLogContext & context, const QString & msg)
{
mutex.lock();
QDateTime dateTime(QDateTime::currentDateTime());
QString timeStr(dateTime.toString("dd-MM-yyyy HH:mm:ss:zzz"));
QString contextString(QString("(%1, %2)").arg(context.file).arg(context.line));
QFile outFile("file.log");
outFile.open(QIODevice::WriteOnly | QIODevice::Append);
QTextStream stream(&outFile);
stream << timeStr << " " << contextString << ": " << msg << endl;
mutex.unlock();
}
Değişkeniniz 'mutex' türünüzde? –
statik QMutex muteks; // global variable –
Hangi işletim sistemini geliştiriyorsunuz? –