DtkCore
DTK Core module
FileAppender.h
1/*
2 Copyright (c) 2010 Boris Moiseev (cyberbobs at gmail dot com)
3
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License version 2.1
6 as published by the Free Software Foundation and appearing in the file
7 LICENSE.LGPL included in the packaging of this file.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU Lesser General Public License for more details.
13*/
14#ifndef FILEAPPENDER_H
15#define FILEAPPENDER_H
16
17// Logger
18#include "CuteLogger_global.h"
19#include <AbstractStringAppender.h>
20
21// Qt
22#include <QFile>
23#include <QTextStream>
24
25DCORE_BEGIN_NAMESPACE
26
27class CUTELOGGERSHARED_EXPORT FileAppender : public AbstractStringAppender
28{
29 public:
30 FileAppender(const QString& fileName = QString());
32
33 QString fileName() const;
34 void setFileName(const QString&);
35
36 qint64 size() const;
37
38 protected:
39 virtual void append(const QDateTime& timeStamp, Logger::LogLevel logLevel, const char* file, int line,
40 const char* function, const QString& category, const QString& message);
41 bool openFile();
42 void closeFile();
43
44 private:
45 QFile m_logFile;
46 QTextStream m_logStream;
47 mutable QMutex m_logFileMutex;
48};
49
50DCORE_END_NAMESPACE
51
52#endif // FILEAPPENDER_H
virtual void append(const QDateTime &timeStamp, Logger::LogLevel logLevel, const char *file, int line, const char *function, const QString &category, const QString &message)=0
Writes the log record to the logger instance
The AbstractStringAppender class provides a convenient base for appenders working with plain text for...
Definition: AbstractStringAppender.h:27
Simple appender that writes the log records to the plain text file.
Definition: FileAppender.h:28
LogLevel
Describes the possible severity levels of the log records
Definition: Logger.h:83