`
tubaluer
  • 浏览: 1445423 次
文章分类
社区版块
存档分类
最新评论
  • sblig: c / c++ 是不一样的都会输出 100
    j = j++

log4j 几个技巧

 
阅读更多

1、想输出多个文件,不想所有的日志都输出在一个文件里。比如已有一个根logger,能记录所有的日志,但希望对某个类中(某部分或全部)的日志单独输出到一个文件中,怎么办?

解决办法:增加一个logger, 如希望一个叫Swift的类,里面有些日志希望单独输出,则可以增加一个logger记录器,名为SWIFT,日志输出级别为DEBUG。


与根logger的比较

2、如果1中的日志输出太多,不想重复输出到DEBUG.log文件中怎么办?

解决:使用additivity属性,将其属性设置为false,则Swift类中的日志不会再输出到DEBUG.log文件中


3、看日志的时候,若用ECLIPSE类的开发工具,则发现日志只能到日志文件中看,在开发环境中看不到

解决:只要设置日志输出到控制台即可

4、一个类中,想要一些日志输出到总日志文件(如DEBUG.log)中,一些日志输出到另外的日志文件中,怎么办?

解决:log4j配置参考1的配置。类中设置两个或多个logger,想要输出到哪里就输出到哪里。


5、如果想对日志分级怎么办,如错误日志输出到DEBUG.log文件中,错误日志输出到ERROR.log文件中

解决:使用Threshold属性,若输出到DEBUG.log文件中,则属性为DEBUG;若输出到ERROR.log文件中,则属性为ERROR。

下面的例子中logger D为输出DEBUG级别的日志,logger E为输出ERROR级别的日志。

总结:

一个完整的log4j的配置


日志常用的两种的形式:

1、日期轮回,一天可以输出一个,一个小时输出一个,或一周输出一个等,具体的可以查阅相关资料,不再赘述。

2、大小轮回,设置每个日志文件最大SIZE,总共多少个日志文件,若所有日志都写满,则最后的部分被挤出丢失。

当然还有可以输出到文件,输出到数据表,或者输出到流等。

日志格式的几点说明:

%d 日期

%t 执行线程

%p 日志级别 如DEBUG, INFO, ERROR, FETAL

%c 所在类得包名,例: %18c{3} 18为固定宽度,不够留空,超过则按实际长度输出;3为包的层次,从当前类往上推

%L 日志输出代码所在行号

%m 日志内容

%n 换行符

高级的内容还有根据不同的用户标识来进行输出,每个用户都有对应的日志,因比较复杂,在此不作阐述。



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics