From df3c3bca025a7cdb5f20e55fc2ecc37618e7cc8d Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Fri, 11 Jul 2014 00:31:24 +0200 Subject: Split into three separate projects: library, gui and cmd --- src/mirall/logger.cpp | 202 -------------------------------------------------- 1 file changed, 202 deletions(-) delete mode 100644 src/mirall/logger.cpp (limited to 'src/mirall/logger.cpp') diff --git a/src/mirall/logger.cpp b/src/mirall/logger.cpp deleted file mode 100644 index 0bc8d1ccb..000000000 --- a/src/mirall/logger.cpp +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Copyright (C) by Klaas Freitag - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#include "mirall/logger.h" - -#include -#include - -namespace Mirall { - -#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) -// logging handler. -static void mirallLogCatcher(QtMsgType type, const char *msg) -{ - Q_UNUSED(type) - // qDebug() exports to local8Bit, which is not always UTF-8 - Logger::instance()->mirallLog( QString::fromLocal8Bit(msg) ); -} -static void qInstallMessageHandler(QtMsgHandler h) { - qInstallMsgHandler(h); -} -#else -static void mirallLogCatcher(QtMsgType, const QMessageLogContext &ctx, const QString &message) { - Q_UNUSED(ctx); - - QByteArray file = ctx.file; - file = file.mid(file.lastIndexOf('/') + 1); - Logger::instance()->mirallLog( QString::fromLocal8Bit(file) + QLatin1Char(':') + QString::number(ctx.line) - + QLatin1Char(' ') + message) ; -} -#endif - -Logger *Logger::instance() -{ - static Logger log; - return &log; -} - -Logger::Logger( QObject* parent) : QObject(parent), - _showTime(true), _doLogging(false), _doFileFlush(false), _logExpire(0) -{ - qInstallMessageHandler(mirallLogCatcher); -} - -Logger::~Logger() { - qInstallMessageHandler(0); -} - - -void Logger::postGuiLog(const QString &title, const QString &message) -{ - emit guiLog(title, message); -} - -void Logger::postOptionalGuiLog(const QString &title, const QString &message) -{ - emit optionalGuiLog(title, message); -} - -void Logger::postGuiMessage(const QString &title, const QString &message) -{ - emit guiMessage(title, message); -} - -void Logger::log(Log log) -{ - QString msg; - if( _showTime ) { - msg = log.timeStamp.toString(QLatin1String("MM-dd hh:mm:ss:zzz")) + QLatin1Char(' '); - } - - if( log.source == Log::CSync ) { - // msg += "csync - "; - } else { - // msg += "ownCloud - "; - } - msg += log.message; - // _logs.append(log); - // std::cout << qPrintable(log.message) << std::endl; - - { - QMutexLocker lock(&_mutex); - if( _logstream ) { - (*_logstream) << msg << endl; - if( _doFileFlush ) _logstream->flush(); - } - } - - emit newLog(msg); -} - -void Logger::csyncLog( const QString& message ) -{ - Log log; - log.source = Log::CSync; - log.timeStamp = QDateTime::currentDateTime(); - log.message = message; - - Logger::instance()->log(log); -} - -void Logger::mirallLog( const QString& message ) -{ - Log log_; - log_.source = Log::Mirall; - log_.timeStamp = QDateTime::currentDateTime(); - log_.message = message; - - Logger::instance()->log( log_ ); -} - -void Logger::setLogFile(const QString & name) -{ - QMutexLocker locker(&_mutex); - - if( _logstream ) { - _logstream.reset(0); - _logFile.close(); - } - - if( name.isEmpty() ) { - return; - } - - bool openSucceeded = false; - if (name == QLatin1String("-")) { - openSucceeded = _logFile.open(1, QIODevice::WriteOnly); - } else { - _logFile.setFileName( name ); - openSucceeded = _logFile.open(QIODevice::WriteOnly); - } - - if(!openSucceeded) { - locker.unlock(); // Just in case postGuiMessage has a qDebug() - postGuiMessage( tr("Error"), - QString(tr("File '%1'
cannot be opened for writing.

" - "The log output can not be saved!
")) - .arg(name)); - return; - } - - _logstream.reset(new QTextStream( &_logFile )); -} - -void Logger::setLogExpire( int expire ) -{ - _logExpire = expire; -} - -void Logger::setLogDir( const QString& dir ) -{ - _logDirectory = dir; -} - -void Logger::setLogFlush( bool flush ) -{ - _doFileFlush = flush; -} - -void Logger::enterNextLogFile() -{ - if (!_logDirectory.isEmpty()) { - QDir dir(_logDirectory); - if (!dir.exists()) { - dir.mkpath("."); - } - - // Find out what is the file with the highest nymber if any - QStringList files = dir.entryList(QStringList("owncloud.log.*"), - QDir::Files); - QRegExp rx("owncloud.log.(\\d+)"); - uint maxNumber = 0; - QDateTime now = QDateTime::currentDateTime(); - foreach(const QString &s, files) { - if (rx.exactMatch(s)) { - maxNumber = qMax(maxNumber, rx.cap(1).toUInt()); - if (_logExpire > 0) { - QFileInfo fileInfo = dir.absoluteFilePath(s); - if (fileInfo.lastModified().addSecs(60*60 * _logExpire) < now) { - dir.remove(s); - } - } - } - } - - QString filename = _logDirectory + "/owncloud.log." + QString::number(maxNumber+1); - setLogFile(filename); - } -} - -} // namespace Mirall -- cgit v1.2.3