-
目
录
Log4Qt
简介
< br>.
...................................
..................................................
......................................
2
Log4j
配置文件
..............................................
..................................................
...............
5
配置根
Logger
.......
..................................................
...............................................
5
配置
Appender
.............................................
..................................................
........
6
配置
layout
< br>.
...................................
..................................................
................................
6
如何使用第三方库?
.............................................
..................................................
................
7
题外
...................................
..................................................
..............................................
7
工程结构示例
.
................................................ .................................................. ................
8
使用
Log4Qt
< br>.
...................................
..................................................
......................................
9
.
..............................
..................................................
.................................
9
...
..................................................
..................................................
.........
1
0
Logger
..........
..................................................
..................................................
.....................
11
环境变
量
......................................
..................................................
.........................................
1
2
初始化
..................................................
..................................................
................................
1
3
还有点什么?
< br>............................................... .................................................. ........................
1
4
实现细节
.
..................................................
..................................................
....................
1
4
/dbzhang800/article/details
/6916948
Log4Qt
简介
Log4Qt
是
Apache
Log4J
的
Qt
移植版,所以看<
/p>
Log4J
的资料应该是最直接有效的(因为
Log4Qt
的直接资料
太少了)。
Log4Qt
主要是用来记录日志
(
有助于程序调试
)
。有
3
个主要的组件:
Logger
提供日志记录服务,可以有多个
Logger
存在,每个有它们自己的名字。
Logg
er
间存在隶属关系,
有一个
Logg
er
称为根
Logger
。
Appender
用来指明将日志记录到什么
地方:比如,控制台、文件、数据库,等等
Layout <
/p>
控制日志的输出格式,可以类比一下
C
中
的
printf
。
例子一
一
个简单的使用
Log4Qt
的
Qt
p>
程序:
(
使用基础配置和根
logger)
#include
#include
#include
int main(int argc, char *argv[])
{
QCoreApplication a(argc,
argv);
Log4Qt::BasicConfigurator::configure();
Log4Qt::Logger * log =
Log4Qt::Logger::rootLogger();
log->deb
ug(
log->info(
log->warn(
return 0;
}
结果如下:
16
[0x00a56708] DEBUG root - Hello DbZhang800!
16 [0x00a56708] INFO root - Hello Qt!
16 [0x00a56708] WARN root - Hello 1+1=2
例子二
稍微扩充一点,使用自己定义的
logger
结果:
0
[0x00a56708] INFO Object - Constructor
0 [0x00a56708] INFO Object - Destructor
在类
Object
中,我们可以使用名
为
的
Logger
。恩,直接指定类名是可以的。可是我们现在在
Qt
下啊。
Qt
的元对象系统中包含类的名字,故尔我们可以直接使用。<
/p>
例子三
用使
用元对象系统,那么必须使用
Q_OBJECT
宏,然后我们从
元对象系统获取类的名字,然后创建一个相应的
logger
就
行了。
不过
Log4Qt
,既然是为
Qt
准备的,那么就要为
Qt
程序解忧嘛,也就是宏
LOG4QT_DECLARE_QCLASS_LOGGER
这个宏展开后成为该类的一个成员函数,返回一个
Logger
,我们就可以直接使用了:
程序的输出结果如下:
2011-10-29 13:52:06 [Object]-[INFO]
constructor
2011-10-29 13:52:06
[Object]-[INFO] destructor
注意,本例中,我们没有使
用默认配置,而是使用了一个配置文件
,放在了可执行程序所在
目录下面
gger=DEBUG,A1
er.A1=eAppender
=nLayout
sionPattern=%-d{yyyy-MM-dd HH:mm:ss}
[%c]-[%p] %m%n
额,没错,里面的这些东西确
实都是以
log4j
打头的,所以需要看
log4j
的手册来搞清楚这些东西:
?
配置
ro
otLogger
,高于
DEBUG
的
日志被输出,定义一个
appender
,取名为
A1
?
配置
A1
,输出到控制台
?
设置
A1
采用的
layout
,并设置其具体格
式
Log4j
配置文件
我是不是太了解,简单整理一下:
配置根
Logger
其语法
gger =
[level], appenderName1, appenderName2, ...
其中:
?
level
控制日志输出的级别:
OFF
FATAL
ERROR
WARN
建议使用的几个级别?,高于指定级别的日志才被输出
INFO
DEBUG
TRACE
关闭所有日志输出
ALL
所有日志均输出
?
appenderName
p>
是
appender
的名字,指定输出到哪
儿
注:除
rootLogger
p>
外,还可以对各个
logger
分别设置<
/p>
ame = [level],
appenderName1, appenderName2, ...
配置
Appender
语法
erName =
1 = value1 ...
N = valueN <
/p>
name
可以任意取,
Log4j
提供的
appender
有:
eAppender
pender
ollingFileAppender
gFileAppender
控制台
文件
每天产生一个日志文件
文件大小到达
指定尺寸的时候产生一个新的文
件
配置
layout
语法
=
1 = value1 …
N = valueN
其中:
log4j
< br>提供的
layout
有
yout
nLayout
以
< br>HTML
表格形式布局
可以灵活地指定布局模式
Layout
yout
格式控制符:
包含日志信息的级别和信息字符串
包含日志产生的时间、线程、类别等等信息
%m
%p
%c
%n
输出代码中指定的消息
输出优先级,即
DEBUG
,
INFO
,
WARN
,
ERROR
,
FATAL
< br>输出
logger
的名字,通常就是所在类的全名
输出一个回车换行符
输出时间,默认格式为
ISO8601
,也可以指定格式,
比如:
%d{yyyy MMM dd HH:mm:ss}
,
类似:
2011
年
10
月
28
%d
日
14
:<
/p>
10
:
28
如何使用第三方库?
不少人使用第三方库时都是:
?
下载源码
?
找出必要的文件
?
然后添加进自己的工程
一般来说,我
们可以将所有和这个库有关的东西放置到一个
这样的文件中,然
后在需要使用的工程
中直接包含这个文件即可:
比如:我们先看看,上一节中我所写例子所用的
pro
文件:
include(../../) CONFIG
+= console DESTDIR = $$$$PROJECT_BINDIR
SOURCES +=
有一点不同:这个文件背后,使用的
不是直接包含文件,而是动态库。这也是本文的内容。
题外
?
<
/p>
注:在
/r/dbzhang800-qextserialpo
rt/
这个第三方库中,我采用的另一种思路
可以采用下面三种方式来使用
QextSerialPort:
静态库
动态库
直接包含源文件
不管使用哪种方式,使用时只需要在工程文件内添加
include(pathToPri/)
-
-
-
-
-
-
-
-
-
上一篇:LogAnalyzer部署日志服务器
下一篇:log4net使用文档,配置说明