java中使用log4j如何不用每次调用都声明一下?
为情所困
为情所困 2017-05-17 10:04:39
0
3
602

每次写个新的类,就要在下面声明下:

private static Logger logger = Logger.getLogger(Test.class);  

这样的话不是很麻烦吗?有没有什么办法,把Logger设置成可以静态调用的类,直接调用info,error等方法,同时还可以打印出当前类、线程号等信息?

为情所困
为情所困

全部回复(3)
漂亮男人

你大可以简单封装一下实现你要的目的,比如建个类把Logger封装进去,暴露几个静态接口出来。至于为什么很多代码书写的时候写成private static Logger logger = Logger.getLogger(Test.class);,其实主要是为了提高日志的灵活性、准确性等。

给我你的怀抱

看看这个 /a/11...

漂亮男人

声明log是因为他可以定义不同的logger name可以通过logger name定制自己的输出方式, 比如level, appender...等

如果你的日志是以相同的方式处理那你完全可以声明公共的静态 log 对象, 需要的地方使用该log也不存在重复声明的情况了.
如:

import static xxx.GlobalLogs.log;

log.debug("...");
log.info("...");
//...

当然你还可以使用 lombok 的方式来简化你的代码.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!