00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef LOG4QT_PATTERNLAYOUT_H
00026 #define LOG4QT_PATTERNLAYOUT_H
00027
00028
00029
00030
00031
00032
00033 #include "log4qt/layout.h"
00034
00035
00036
00037
00038
00039
00040
00041 namespace Log4Qt
00042 {
00043
00044 class PatternFormatter;
00045
00053 class PatternLayout : public Layout
00054 {
00055 Q_OBJECT
00056
00064 Q_PROPERTY(QString conversionPattern READ conversionPattern WRITE setConversionPattern)
00065
00066 public:
00072 enum ConversionPattern
00073 {
00075 DEFAULT_CONVERSION_PATTERN,
00080 TTCC_CONVERSION_PATTERN,
00081 };
00082 Q_ENUMS(ConversionPattern)
00083
00084 PatternLayout(QObject *pParent = 0);
00085 PatternLayout(const QString &rPattern,
00086 QObject *pParent = 0);
00087
00092 PatternLayout(ConversionPattern conversionPattern,
00093 QObject *pParent = 0);
00094
00095 virtual ~PatternLayout();
00096 private:
00097 PatternLayout(const PatternLayout &rOther);
00098 PatternLayout &operator=(const PatternLayout &rOther);
00099
00100 public:
00101 QString conversionPattern() const;
00102 void setConversionPattern(const QString &rPattern);
00103
00108 void setConversionPattern(ConversionPattern conversionPattern);
00109
00110 virtual QString format(const LoggingEvent &rEvent);
00111
00112 protected:
00113 #ifndef QT_NO_DEBUG_STREAM
00114
00124 virtual QDebug debug(QDebug &rDebug) const;
00125 #endif // QT_NO_DEBUG_STREAM
00126
00127 private:
00128 void updatePatternFormatter();
00129
00130 private:
00131 QString mPattern;
00132 PatternFormatter *mpPatternFormatter;
00133 };
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145 inline QString PatternLayout::conversionPattern() const
00146 { return PatternLayout::mPattern; }
00147
00148 inline void PatternLayout::setConversionPattern(const QString &rPattern)
00149 { mPattern = rPattern;
00150 updatePatternFormatter(); }
00151
00152
00153 }
00154
00155
00156
00157
00158
00159 #endif // LOG4QT_PATTERNLAYOUT_H