diff options
Diffstat (limited to 'ext/Log4Qt/src/databaseappender.cpp')
| -rwxr-xr-x | ext/Log4Qt/src/databaseappender.cpp | 224 |
1 files changed, 0 insertions, 224 deletions
diff --git a/ext/Log4Qt/src/databaseappender.cpp b/ext/Log4Qt/src/databaseappender.cpp deleted file mode 100755 index 7b1900d..0000000 --- a/ext/Log4Qt/src/databaseappender.cpp +++ /dev/null @@ -1,224 +0,0 @@ -/****************************************************************************** - * - * package: Log4Qt - * file: databaseappender.cpp - * created: Marth 2010 - * author: Michael Filonenko - * - * - * Copyright 2010 Michael Filonenko - * - * 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 "databaseappender.h" - -#include <QtCore/QDebug> - -#include <QtSql/QSqlDriver> -#include <QtSql/QSqlQuery> -#include <QtSql/QSqlRecord> -#include <QtSql/QSqlField> -#include <QtSql/QSqlError> - - -#include "databaselayout.h" -#include "loggingevent.h" - -#include "helpers/datetime.h" - - - -namespace Log4Qt -{ - - - /************************************************************************** - * Declarations - **************************************************************************/ - - - - /************************************************************************** - * C helper functions - **************************************************************************/ - - - - /************************************************************************** - * Class implementation: DatabaseAppender - **************************************************************************/ - - - DatabaseAppender::DatabaseAppender(QObject *pParent) : - AppenderSkeleton(false, pParent) - , connectionName(QSqlDatabase::defaultConnection) - , tableName(QString::null) - { - } - - - DatabaseAppender::DatabaseAppender(Layout *pLayout, - QObject *pParent) : - AppenderSkeleton(false, pParent) - , connectionName(QSqlDatabase::defaultConnection) - , tableName(QString::null) - { - setLayout(pLayout); - } - - - DatabaseAppender::DatabaseAppender(Layout *pLayout - ,const QString& tableName - ,const QString& connection - ,QObject *pParent) : - AppenderSkeleton(false, pParent) - , connectionName(connection) - , tableName(tableName) - { - setLayout(pLayout); - } - - - DatabaseAppender::~DatabaseAppender() - { - close(); - } - - - void DatabaseAppender::setConnection(const QString& connection) - { - QMutexLocker locker(&mObjectGuard); - - if (connectionName == connection) - return; - - connectionName = connection; - } - - - void DatabaseAppender::setTable(const QString& table) - { - QMutexLocker locker(&mObjectGuard); - - if (table == tableName) - return; - - tableName = table; - } - - - void DatabaseAppender::activateOptions() - { - QMutexLocker locker(&mObjectGuard); - - if (!QSqlDatabase::contains(connectionName) || tableName.isEmpty()) - { - LogError e = LOG4QT_QCLASS_ERROR(QT_TR_NOOP("Activation of Appender '%1' that requires sql connection and table and has no connection or table set") - , APPENDER_MISSING_DATABASE_OR_TABLE_ERROR); - e << name(); - logger()->error(e); - return; - } - - AppenderSkeleton::activateOptions(); - } - - - - bool DatabaseAppender::requiresLayout() const - { - return true; - } - - - void DatabaseAppender::append(const LoggingEvent &rEvent) - { - DatabaseLayout *databaseLayout = qobject_cast<DatabaseLayout *>(layout()); - - if (databaseLayout) { - QSqlRecord record = databaseLayout->formatRecord(rEvent); - - QSqlDatabase database = QSqlDatabase::database(connectionName); - QSqlQuery query(database); - if (!query.exec(database.driver()->sqlStatement(QSqlDriver::InsertStatement - , tableName, record, false))) - { - LogError e = LOG4QT_ERROR(QT_TR_NOOP("Sql query exec error: '%1'"), - APPENDER_EXEC_SQL_QUERY_ERROR, - Q_FUNC_INFO); - e << query.lastQuery() + " " + query.lastError().text(); - logger()->error(e); - } - } else { - LogError e = LOG4QT_QCLASS_ERROR(QT_TR_NOOP("Use of appender '%1' with invalid layout"), - APPENDER_INVALID_DATABASE_LAYOUT_ERROR); - e << name(); - logger()->error(e); - } - } - - - bool DatabaseAppender::checkEntryConditions() const - { - // Q_ASSERT_X(, "DatabaseAppender::checkEntryConditions()", "Lock must be held by caller") - - if (!QSqlDatabase::contains(connectionName) || tableName.isEmpty()) - { - LogError e = LOG4QT_QCLASS_ERROR(QT_TR_NOOP("Use of appender '%1' with invalid database or empty table name"), - APPENDER_MISSING_DATABASE_OR_TABLE_ERROR); - e << name(); - logger()->error(e); - return false; - } - - return AppenderSkeleton::checkEntryConditions(); - } - - -#ifndef QT_NO_DEBUG_STREAM - QDebug DatabaseAppender::debug(QDebug &rDebug) const - { - QString layout_name; - if (layout()) - layout_name = layout()->name(); - - rDebug.nospace() << "DatabaseAppender(" - << "name:" << name() << " " - << "connection:" << connectionName << " " - << "table:" << tableName - << "filter:" << firstFilter() - << "isactive:" << isActive() - << "isclosed:" << isClosed() - << "layout:" << layout_name - << "referencecount:" << referenceCount() << " " - << "threshold:" << threshold().toString() - << ")"; - return rDebug.space(); - } -#endif // QT_NO_DEBUG_STREAM - - /****************************************************************************** - * Implementation: Operators, Helper - ******************************************************************************/ - - -} // namespace Log4Qt |
