diff -r 2c9d3aa5bea2 -r 20bd089f4aaa controlpanel/controlpanel_plat/inc/logger.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/controlpanel/controlpanel_plat/inc/logger.h Thu Apr 01 03:23:37 2010 +0800 @@ -0,0 +1,90 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0"" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef LOGGER_H +#define LOGGER_H + +#include +#include +#include + +class LogOutput; +class QSettings; +class LoggerPrivate; + +/* + +configuration format: + + [myapplog] + logDateTime = 1 + logLoggerName = 1 + output = debugoutput consoleoutput fileoutput + fileoutput/logfile = C:/data/log/myapp.log + fileoutput/truncate = 1 + +code examples: + + QSettings settings("myapp.ini",QSettings::IniFormat); + Logger::instance("myapplog")->configure(settings); + Logger::instance("myapplog")->log("Hello world!"); + +*/ + +class LOGGER_EXPORT Logger : public QObject +{ + Q_OBJECT + Q_PROPERTY(bool logDateTime READ logDateTime WRITE setLogDateTime) + Q_PROPERTY(bool logLoggerName READ logLoggerName WRITE setLogLoggerName) + Q_PROPERTY(QString dateTimeFormat READ dateTimeFormat WRITE setDateTimeFormat) +public: + static Logger *instance(const QString &name); + static void close(const QString &name); + static void closeAll(); +public: + virtual ~Logger(); + + void log(const QString &log); + + void configure(const QString &configFile,QSettings::Format format = QSettings::NativeFormat); + + void configure(QSettings &settings); + + bool addLogOutput(LogOutput *output); + + void removeLogOutput(LogOutput *output); + + LogOutput *logOutput(const QString &name); + + void clearAllLogOutput(); + + QString name() const; + + bool logDateTime() const; + void setLogDateTime(bool on); + + bool logLoggerName() const; + void setLogLoggerName(bool on); + + QString dateTimeFormat() const; + void setDateTimeFormat(const QString &format); +private: + explicit Logger(const QString &name = QString(),QObject *parent = 0); + LoggerPrivate *d_ptr; +}; + +#endif //LOGGER_H