log4qt
文章转自王牌软件
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)
只回答业务咨询
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)
http://blog.csdn.net/dbzhang800/article/details/6916948
log4j.rootLogger=DEBUG,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
Log4Qt::Logger * log = Log4Qt::Logger::rootLogger();
log->debug("Hello DbZhang800!");
log->info("Hello Qt!");
log->warn("Hello 1+1=2");
log->debug("Hello DbZhang800!");
int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); Log4Qt::PropertyConfigurator::configure(a.applicationDirPath() + "/log4qt.conf"); Log4Qt::LogManager::setHandleQtMessages(true); //Object obj; qDebug("123123123"); qDebug("sdasdasda"); return a.exec(); }
log4qt.conf
QSettings s;
s.beginGroup("Log4Qt");
s.beginGroup("Properties");
s.setValue("log4j.appender.A1", "org.apache.log4j.FileAppender");
s.setValue("log4j.appender.A1.file", "F:/bin/myapp.log");
s.setValue("log4j.appender.A1.layout", "org.apache.log4j.TTCCLayout");
s.setValue("log4j.appender.A1.layout.DateFormat", "ISO8601");
s.setValue("log4j.rootLogger", "TRACE, A1");
s.beginGroup("Log4Qt");
s.beginGroup("Properties");
s.setValue("log4j.appender.A1", "org.apache.log4j.FileAppender");
s.setValue("log4j.appender.A1.file", "F:/bin/myapp.log");
s.setValue("log4j.appender.A1.layout", "org.apache.log4j.TTCCLayout");
s.setValue("log4j.appender.A1.layout.DateFormat", "ISO8601");
s.setValue("log4j.rootLogger", "TRACE, A1");
log4j.rootLogger=DEBUG,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
1 2 3 4 5 6 7 8 9 10 11 |
log4j.rootLogger = INFO, consoleAppender log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout log4j.appender.consoleAppender.layout.ConversionPattern= [%d{yyyy-MM-dd HH:mm:ss}] %-5p - %m%n log4j.category.startPrice =info,startPrice log4j.appender.startPrice =org.apache.log4j.DailyRollingFileAppender log4j.appender.startPrice.File=/root/liangshunan/log/resviceStartPrice.log log4j.appender.startPrice.DatePattern='.'yyyy-MM-dd log4j.appender.startPrice.layout=org.apache.log4j.PatternLayout log4j.appender.startPrice.layout.ConversionPattern= [%d{yyyy-MM-dd HH:mm:ss}] %-5p - %m%n |
#include "./log4qt/logger.h"
#include "./log4qt/propertyconfigurator.h"
#include "./log4qt/logmanager.h"
Log4Qt::PropertyConfigurator ::configure( a.applicationDirPath () + "/log4qt.conf");
Log4Qt::LogManager ::setHandleQtMessages( true);
//Object obj;
qDebug("1231DDFDDF23123");
qDebug("sdasdasda");
return a .exec();
//防止 继续写入 不覆盖
log4j.appender.R.AppendFile=true //==FileAppender::setAppendFile(true)
———————————————————–
log4j.rootLogger=DEBUG,A1
log4j.appender.A1=org.apache.log4j. DailyRollingFileAppender
log4j.appender.A1.File=d:/logs/log
log4j.appender.A1.AppendFile=true
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %l: %m%n
log4j.appender.A1=org.apache.log4j. DailyRollingFileAppender
log4j.appender.A1.File=d:/logs/log
log4j.appender.A1.AppendFile=true
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %l: %m%n
log4qt是Apache Log4j项目用于Qt框架的C++移植版本。单一开发者,年初发布0.2版本。
和其他系log4*不同,log4qt默认静态编译进目标程序。
使用:
1. 解压log4qt到目标文件夹,如D:Qt下;
2. qt项目的pro文件中加入一行:include(D:Qtlog4qtsrclog4qtlog4qt.pri),
pri文件会将需要的h文件和cpp文件加入到qt项目中;
3. eclipse项目的属性-C/C++ Include Paths and Symbols中增加D:Qtlog4qtsrc;
4. main.cpp中包含头文件include "log4qt/propertyconfigurator.h",
增加一行:Log4Qt::PropertyConfigurator::configure(a.applicationDirPath() + "/log4j.properties");
log4j.properties符合log4j的配置文件的风格;
5. 需要记录日志的文件,头文件中包含头文件#include "log4qt/logger.h",
在Q_OBJECT之后加入一行,LOG4QT_DECLARE_QCLASS_LOGGER,这样就可以使用logger()->error("what?")记录日志了;
和其他系log4*不同,log4qt默认静态编译进目标程序。
使用:
1. 解压log4qt到目标文件夹,如D:Qt下;
2. qt项目的pro文件中加入一行:include(D:Qtlog4qtsrclog4qtlog4qt.pri),
pri文件会将需要的h文件和cpp文件加入到qt项目中;
3. eclipse项目的属性-C/C++ Include Paths and Symbols中增加D:Qtlog4qtsrc;
4. main.cpp中包含头文件include "log4qt/propertyconfigurator.h",
增加一行:Log4Qt::PropertyConfigurator::configure(a.applicationDirPath() + "/log4j.properties");
log4j.properties符合log4j的配置文件的风格;
5. 需要记录日志的文件,头文件中包含头文件#include "log4qt/logger.h",
在Q_OBJECT之后加入一行,LOG4QT_DECLARE_QCLASS_LOGGER,这样就可以使用logger()->error("what?")记录日志了;
疑问:
1. 怎样让日志文件以Append的方式写入?
2. 怎样以stream的方式(使用<<操作符)写日志?
更新:
2009-05-16
1. FileAppender有个属性叫appendFile,为true时以Append方式打开文件,为false时以Truncate方式打开文件,默认为false。可以调用FileAppender::setAppendFile(true),或者在配置文件中加一行log4j.appender.R.AppendFile=true。
RollingFileAppender是FileAppender的子类
学习日记,兼职软件设计,软件修改,毕业设计。
本文出自 学习日记,转载时请注明出处及相应链接。
本文永久链接: https://www.softwareace.cn/?p=49