1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
/*
* Copyright (C) 2008-2010 The QXmpp developers
*
* Author:
* Manjeet Dahiya
*
* Source:
* http://code.google.com/p/qxmpp
*
* This file is a part of QXmpp library.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
*/
#ifndef QXMPPLOGGER_H
#define QXMPPLOGGER_H
#include <QObject>
/// \brief The QXmppLogger class represents a sink for logging messages.
///
/// \ingroup Core
class QXmppLogger : public QObject
{
Q_OBJECT
public:
/// This enum describes how log message are handled.
enum LoggingType
{
NoLogging = 0, ///< Log messages are discarded
FileLogging = 1, ///< Log messages are written to a file
StdoutLogging = 2, ///< Log messages are written to the standard output
SignalLogging = 4, ///< Log messages are emitted as a signal
// Deprecated
/// \cond
NONE = 0, ///< DEPRECATED Log messages are discarded
FILE = 1, ///< DEPRECATED Log messages are written to a file
STDOUT = 2 ///< DEPRECATED Log messages are written to the standard output
/// \endcond
};
/// This enum describes a type of log message.
enum MessageType
{
NoMessage = 0, ///< No message type
DebugMessage = 1, ///< Debugging message
InformationMessage = 2, ///< Informational message
WarningMessage = 4, ///< Warning message
ReceivedMessage = 8, ///< Message received from server
SentMessage = 16, ///< Message sent to server
AnyMessage = 31, ///< Any message type
};
Q_DECLARE_FLAGS(MessageTypes, MessageType)
QXmppLogger(QObject *parent = 0);
static QXmppLogger* getLogger();
QXmppLogger::LoggingType loggingType();
void setLoggingType(QXmppLogger::LoggingType type);
QString logFilePath();
void setLogFilePath(const QString &path);
QXmppLogger::MessageTypes messageTypes();
void setMessageTypes(QXmppLogger::MessageTypes types);
public slots:
void log(QXmppLogger::MessageType type, const QString& text);
signals:
/// This signal is emitted whenever a log message is received.
void message(QXmppLogger::MessageType type, const QString &text);
private:
static QXmppLogger* m_logger;
QXmppLogger::LoggingType m_loggingType;
QString m_logFilePath;
QXmppLogger::MessageTypes m_messageTypes;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QXmppLogger::MessageTypes)
#endif // QXMPPLOGGER_H
|