diff options
| author | Philipp Andreas <github@smurfy.de> | 2014-07-20 22:25:45 +0200 |
|---|---|---|
| committer | Philipp Andreas <github@smurfy.de> | 2014-07-20 23:21:05 +0200 |
| commit | c9c1ed9faee07c0067827872ffe465d465c81470 (patch) | |
| tree | 91b87b5ad63956bda1254cb4b083f3fc8d6551e4 /ext/Log4Qt/src/helpers/logerror.cpp | |
| parent | 9bbba72939248388dfc832a5bf20cb9539ab0675 (diff) | |
| parent | c47315faa12bbb36772c3f5897751bf74fa122f4 (diff) | |
Merge branch 'master' into notifications
Conflicts:
daemon/daemon.cpp
daemon/manager.cpp
daemon/manager.h
ext/Log4Qt
Diffstat (limited to 'ext/Log4Qt/src/helpers/logerror.cpp')
| -rwxr-xr-x | ext/Log4Qt/src/helpers/logerror.cpp | 352 |
1 files changed, 0 insertions, 352 deletions
diff --git a/ext/Log4Qt/src/helpers/logerror.cpp b/ext/Log4Qt/src/helpers/logerror.cpp deleted file mode 100755 index 1bf8030..0000000 --- a/ext/Log4Qt/src/helpers/logerror.cpp +++ /dev/null @@ -1,352 +0,0 @@ -/****************************************************************************** - * - * package: Log4Qt - * file: logerror.cpp - * created: September 2007 - * author: Martin Heinrich - * - * - * Copyright 2007 Martin Heinrich - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ******************************************************************************/ - - - -/****************************************************************************** - * Dependencies - *****************************************************************************/ - - -#include "helpers/logerror.h" - -#include <QtCore/QBuffer> -#include <QtCore/QByteArray> -#include <QtCore/QDataStream> -#include <QtCore/QCoreApplication> -#include <QtCore/QDebug> -#include <QtCore/QTextCodec> -#include <QtCore/QThreadStorage> -#include "helpers/initialisationhelper.h" - - -namespace Log4Qt -{ - - - /************************************************************************** - * Declarations - **************************************************************************/ - - - typedef QThreadStorage<LogError *> ThreadError; - - - - /************************************************************************** - * C helper functions - **************************************************************************/ - - - LOG4QT_GLOBAL_STATIC(ThreadError, thread_error) - - - - /************************************************************************** - * Class implementation: LogError - **************************************************************************/ - - - LogError::LogError() : - mCode(0), - mContext(), - mMessage(), - mSymbol(), - mArgs(), - mCausingErrors() - { - } - - - LogError::LogError(const QString &rMessage, - int code, - const QString &rSymbol, - const QString &rContext) : - mCode(code), - mContext(rContext), - mMessage(cleanMessage(rMessage)), - mSymbol(rSymbol), - mArgs(), - mCausingErrors() - { - } - - - LogError::LogError(const char *pMessage, - int code, - const char *pSymbol, - const char *pContext, - Encoding encoding) : - mCode(code), - mContext(QString::fromLatin1(pContext)), - mMessage(), - mSymbol(QString::fromLatin1(pSymbol)), - mArgs(), - mCausingErrors() - { - switch(encoding) - { - case LATIN1: - mMessage = QString::fromLatin1(pMessage); - break; -#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) - case CODECFORTR: - mMessage = QTextCodec::codecForTr()->toUnicode(pMessage); - break; -#endif - case UNICODEUTF8: - mMessage = QString::fromUtf8(pMessage); - break; - default: - Q_ASSERT_X(false, "LogError::LogError", "Unkown encoding constant"); - mMessage = QString::fromLatin1(pMessage); - } - mMessage = cleanMessage(mMessage); - - if (mSymbol == QString::number(mCode)) - mSymbol.clear(); - } - - - QString LogError::translatedMessage() const - { - return QCoreApplication::translate(mContext.toLatin1(), mMessage.toUtf8().data(), 0 -#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) - , QCoreApplication::UnicodeUTF8 -#endif - ); - } - - - LogError LogError::lastError() - { - if (!thread_error()->hasLocalData()) - return LogError(); - else - return *thread_error()->localData(); - } - - - void LogError::setLastError(const LogError &rLogError) - { - if (!thread_error()->hasLocalData()) - thread_error()->setLocalData(new LogError); - - *thread_error()->localData() = rLogError; - } - - - QString LogError::toString() const - { - QString result = messageWithArgs(); - - QString context_symbol = mContext; - if (!context_symbol.isEmpty() && !mSymbol.isEmpty()) - context_symbol.append(QLatin1String("::")); - context_symbol.append(mSymbol); - - if (!context_symbol.isEmpty() || mCode) - { - result.append(QLatin1String(" (")); - if (!context_symbol.isEmpty()) - result.append(context_symbol); - if (!context_symbol.isEmpty() && mCode) - result.append(QLatin1String(", ")); - if (mCode) - result.append(QString::number(mCode)); - result.append(QLatin1String(")")); - } - - if (!mCausingErrors.isEmpty()) - { - QString causing_errors_str = QLatin1String(": ") + mCausingErrors.at(0).toString(); - int i = 1; - while (i < mCausingErrors.count()) - { - causing_errors_str.append(QLatin1String(", ")).append(mCausingErrors.at(i).toString()); - i++; - } - result.append(causing_errors_str); - } - - return result; - } - - - QString LogError::insertArgs(const QString &rMessage) const - { - QString result; - - /* - - // Don't use a loop to be able to handle arguments that conatin strings - // like %1. - // Using this method only 9 arguments can be handled as the %1 - // in %11 gets also replaced with the first argument. - - switch (mArgs.count()) - { - case 0: - break; - case 1: - result = rMessage.arg(mArgs.at(0)); - break; - case 2: - result = rMessage.arg(mArgs.at(0), mArgs.at(1)); - break; - case 3: - result = rMessage.arg(mArgs.at(0), mArgs.at(1), mArgs.at(2)); - break; - case 4: - result = rMessage.arg(mArgs.at(0), mArgs.at(1), mArgs.at(2), mArgs.at(3)); - break; - case 5: - result = rMessage.arg(mArgs.at(0), mArgs.at(1), mArgs.at(2), mArgs.at(3), mArgs.at(4)); - break; - case 6: - result = rMessage.arg(mArgs.at(0), mArgs.at(1), mArgs.at(2), mArgs.at(3), mArgs.at(4), mArgs.at(5)); - break; - case 7: - result = rMessage.arg(mArgs.at(0), mArgs.at(1), mArgs.at(2), mArgs.at(3), mArgs.at(4), mArgs.at(5), mArgs.at(6)); - break; - case 8: - result = rMessage.arg(mArgs.at(0), mArgs.at(1), mArgs.at(2), mArgs.at(3), mArgs.at(4), mArgs.at(5), mArgs.at(6), mArgs.at(7)); - break; - default: - result = rMessage.arg(mArgs.at(0), mArgs.at(1), mArgs.at(2), mArgs.at(3), mArgs.at(4), mArgs.at(5), mArgs.at(6), mArgs.at(7), mArgs.at(8)); - break; - } - - if (mArgs.count() > 9) - { - int i = 9; - while(i < mArgs.count()) - { - result = result.arg(mArgs.at(i)); - i++; - } - } - */ - - result = rMessage; - QVariant arg; - Q_FOREACH(arg, mArgs) - result = result.arg(arg.toString()); - return result; - } - - - QString LogError::cleanMessage(const QString &rMessage) - { - if (rMessage.isEmpty()) - return rMessage; - - QString result = rMessage; - if (rMessage.at(rMessage.size() - 1) == QLatin1Char('.')) - result = rMessage.left(rMessage.size() - 1); - return result; - } - - - - /************************************************************************** - * Implementation: Operators, Helper - **************************************************************************/ - - -#ifndef QT_NO_DATASTREAM - QDataStream &operator<<(QDataStream &rStream, - const LogError &rLogError) - { - QBuffer buffer; - buffer.open(QIODevice::WriteOnly); - QDataStream stream(&buffer); - - // version - quint16 version = 0; - stream << version; - // version 0 data - stream << rLogError.mCode - << rLogError.mContext - << rLogError.mMessage - << rLogError.mSymbol - << rLogError.mArgs - << rLogError.mCausingErrors; - - buffer.close(); - rStream << buffer.buffer(); - return rStream; - } - - - QDataStream &operator>>(QDataStream &rStream, - LogError &rLogError) - { - QByteArray array; - rStream >> array; - QBuffer buffer(&array); - buffer.open(QIODevice::ReadOnly); - QDataStream stream(&buffer); - - // version - quint16 version; - stream >> version; - // Version 0 data - QString level; - QString logger; - stream >> rLogError.mCode - >> rLogError.mContext - >> rLogError.mMessage - >> rLogError.mSymbol - >> rLogError.mArgs - >> rLogError.mCausingErrors; - - buffer.close(); - return rStream; - } -#endif // QT_NO_DATASTREAM - - -#ifndef QT_NO_DEBUG_STREAM - QDebug operator<<(QDebug debug, - const LogError &rLogError) - { - // Escape % sign - QString message = rLogError.message(); - message.replace(QLatin1String("%"), QLatin1String("%%")); - - debug.nospace() << "LogError(" - << "code:" << rLogError.code() << " " - << "context:" << rLogError.context() << " " - << "message:" << message << " " - << "symbol:" << rLogError.symbol() << " " - << "args:" << rLogError.args() - << "translatedMessage:" << rLogError.translatedMessage() - << ")"; - return debug.maybeSpace(); - } -#endif // QT_NO_DEBUG_STREAM - - -} // namespace Log4Qt |
