log4j
来源:互联网 发布:访问网站出现 php探针 编辑:程序博客网 时间:2024/06/04 18:48
在项目中使用Log4J并不是一件困难的事情,简单粗暴的方式就是在每个类A中声明一个Logger私有属性
这样虽然简单,但是带来有两个问题:
1.增加系统开销-每个使用Log4J的类都增加了对象属性.
2.麻烦:每个使用Logger的类都要重复声明上面Logger对象.
其实不难发现可以使用重构手法,声明一个公用的类Log4jUtils,处理Logger的公共操作.
不过呢,问题不这么简单.首先要解决一个问题:
Logger.getLogger(A.class)中的A.class有什么用?
先做个试验,先简单配置log4j.properties文件,可参看这篇日志:log4j 配置详解
测试类:
结果:
不难知道%c输出所属的类目,通常就是所在类(class)的全名。但是我们追踪的其实是LoggerTest类,结果返回的却是java.lang.Object,简直就是误导.这时候将LoggerTest类的代码修改:
结果变为:
要的结果终于出现了.至此,明白了getLogger(class)的参数用途:追踪产生此日志的类.
新的问题:
若要使用一个类Log4jUtils来专门处理Logger对象的声明等操作,那么如何处理getLogger(class)的参数问题?
也就是如何在Log4jUtils得到调用logger对象的类型.
解决这个困难可以是使用Java的反射机制
看下面的代码:
类Log4jUtils:
修改类LoggerTest的代码:运行结果:
看到这个结果就很爽了.以后项目就可以放弃使用System.out.println()打印语句了.
转载自:http://blog.csdn.net/lixwjava/article/details/45950559
记:有空学习Reflection!
阅读全文
0 0
- log4j
- log4j
- log4j
- log4j
- log4j
- log4j
- log4j
- Log4J
- Log4j
- log4j
- log4j
- Log4j
- Log4j
- log4j
- Log4J
- log4j
- Log4j
- Log4J
- 差分表学习小记(自然数幂和)
- 利用Git For Windows进行本地文件同步
- 数据类型:String——JavaScript知识小结08
- k均值介绍
- 2-Vue 的实现
- log4j
- react-native的正确姿势
- spring cloud技术博客网址
- Android:这是一份很详细的Socket使用攻略
- 变换元素transform的那些事儿
- 机器学习路线图
- android:imeOptions属性详解以及无效处理
- HDU 1394:Minimum Inversion Number
- IT之路-进制、运算符、控制语句-ZCSDN.2017.7.13