DtkCore
DTK Core module
RollingFileAppender.h
浏览该文件的文档.
1// Copyright (C) 2017 ~ 2017 Deepin Technology Co., Ltd.
2// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
3//
4// SPDX-License-Identifier: LGPL-3.0-or-later
5
6#ifndef ROLLINGFILEAPPENDER_H
7#define ROLLINGFILEAPPENDER_H
8
9#include <QDateTime>
10
11#include <FileAppender.h>
12
13DCORE_BEGIN_NAMESPACE
14
15class LIBDTKCORESHARED_EXPORT RollingFileAppender : public FileAppender
16{
17 public:
24 {
25
26 MinutelyRollover = 0,
27 HourlyRollover,
28 HalfDailyRollover,
29 DailyRollover,
30 WeeklyRollover,
31 MonthlyRollover
32 };
33
34 RollingFileAppender(const QString &fileName = QString());
35
37 void setDatePattern(DatePattern datePattern);
38 void setDatePattern(const QString &datePattern);
39
40 QString datePatternString() const;
41
42 void setLogFilesLimit(int limit);
43 int logFilesLimit() const;
44
45 void setLogSizeLimit(int limit);
46 qint64 logSizeLimit() const;
47
48 protected:
49 virtual void append(const QDateTime &time, Logger::LogLevel level, const char *file, int line,
50 const char *func, const QString &category, const QString &msg);
51
52 private:
53 void rollOver();
54 void computeRollOverTime();
55 void computeFrequency();
56 void removeOldFiles();
57 void setDatePatternString(const QString &datePatternString);
58
59 QString m_datePatternString;
60 DatePattern m_frequency;
61
62 QDateTime m_rollOverTime;
63 QString m_rollOverSuffix;
64 int m_logFilesLimit;
65 qint64 m_logSizeLimit;
66 mutable QMutex m_rollingMutex;
67};
68
69DCORE_END_NAMESPACE
70
71#endif // ROLLINGFILEAPPENDER_H
简单的appender,将日志记录写到纯文本文件中
Definition: FileAppender.h:19
LogLevel
日志等级
Definition: Logger.h:22
RollingFileAppender类扩展了FileAppender,使日志文件在用户选择的频率上进行滚动
Definition: RollingFileAppender.h:16
void setDatePattern(const QString &datePattern)
此重载是为了方便使用,可以传入一个滚动频率字符串
void setLogFilesLimit(int limit)
设置日志文件数量上限,最旧的文件会被滚动覆盖
qint64 logSizeLimit() const
返回设置的日志文件单个文件大小上限
void setDatePattern(DatePattern datePattern)
设置日志滚动频率
DatePattern
日志频率
Definition: RollingFileAppender.h:24
int logFilesLimit() const
返回设置的日志文件数量上限
RollingFileAppender(const QString &fileName=QString())
构造函数,默认限制日志文件个数是0,默认日志文件大小是1024*1024*20=20m
QString datePatternString() const
以字符串形式,返回当前滚动频率
DatePattern datePattern() const
返回当前的滚动更新频率
void setLogSizeLimit(int limit)
设置日志文件单个文件大小上限