log4qt的源码 for Qt5:下载
用qt creator打开已下载的log4qt.pro,编译生成动态库log4qt.dll
新建工程在pro文件中添加
# Add Log4qt libary
INCLUDEPATH += $$PWD/lib/log4qt/src
LIBS += -L$$PWD/lib/log4qt/lib -llog4qt
下面是我的测试工程目录结构,其中lib中放着log4qt.dll,src是log4qt中源码里面复制过来的
添加一个类封装log4qt
#ifndef LOGMASTER_H
#define LOGMASTER_H
#define log4Debug(msg) LogMaster::debug(msg)
#include "log4qt/logger.h"
class LogMaster
{
public:
// 与QDebug配合使用
static void setHandleQtMessages(bool on);
static void debug(const QString &msg);
private:
static LogMaster* instance();
LogMaster();
bool m_isConfigDone;
Log4Qt::Logger *m_rollingFile;
};
#endif // LOGMASTER_H
调用接口
LogMaster::LogMaster()
{
// 设置配置文件
QString confPath = QApplication::applicationDirPath() + "/log4qt.conf";
m_isConfigDone = Log4Qt::PropertyConfigurator::configure(confPath);
if (m_isConfigDone) {
m_rollingFile = Log4Qt::Logger::logger("rollingFile");
}
}
void LogMaster::debug(const QString &msg)
{
if (!instance()->m_isConfigDone) {
qDebug() << "Cann't debug Messages, log4qt configure failed!";
return;
}
instance()->m_rollingFile->debug(msg);
}
// 在需要使用的地方直接调用,比如:
log4Debug("\n#############################\n"
"# Start log4qt #\n"
"#############################");
配合使用QDebug
Log4Qt::LogManager::setHandleQtMessages(true);
配置文件内容
配置成功,会自动生成日志文件,位置"log4j.appender.rollingFile.File=***"中更改,有关其它配置文件内容请参考其它博客,网上很多
log4j.rootLogger=DEBUG, rollingFile
log4j.additivity.org.apache=true
log4j.appender.rollingFile=Log4Qt::RollingFileAppender
log4j.appender.rollingFile.ImmediateFlush=true
log4j.appender.rollingFile.AppendFile=true
log4j.appender.rollingFile.File=F:/log4qt_demo.log
log4j.appender.rollingFile.MaxFileSize=4096KB
log4j.appender.rollingFile.MaxBackupIndex=10
log4j.appender.rollingFile.layout=Log4Qt::PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss.zzz}[%p] %m%n
生成的日志
测试例子下载
其它参考
http://blog.chinaunix.net/uid-25434387-id-178193.html
https://gitchat.csdn.net/columnTopic/5b2c6356072e851cae42a1c9?utm_source=juhe
https://blog.csdn.net/wy19950920/article/details/82498095