Log4J的输出控制
今天发现log4j输出信息中有两个很有用的参数:
%l
之前一直在用 %C.%M 显示日志输出源的完整路径,主要是想日后方便根据完整的类名和方法名找回日志输出语句。
但原来 %l 就已经包含了日志发生的精确位置,最重要的是它带了一个超链接,一点就直接跳转到日志语句,连输出的方法路径都不用看了。。。
不过需要提的是,在eclipse里,%l的前一个字符好像只能是空格,如果是其他字符,超链接会失效或者外观有异样 - -
%c
这个参数输出的信息貌似跟%C、%l之流差不多,BUT...这个参数要屌得多!!
你想让struts闭嘴吗?你受够各种开源库里的DEBUG日志了吗?你是不是试过明明按着%C、%l输出的完整类名,用 log4j.logger.包名 设置了指定包的日志输出级别,但结果TMD跟没设一样?有没有一种感觉那些肏蛋的、狗日的、杀不死的日志每一句都是在对你的嘲笑?。。。
恭喜你,从今天起,你可以雄起了。
这个参数输出的是你传进 Logger.getLogger() 里的类名,在控制指定包的日志输出级别时,其实是这个值在起作用!
举个例子:
package fuck;public class Fucker{private static final Logger LOGGER = Logger.getLogger(String.class.getName());public static void main(String[] args) throws Exception{LOGGER.info("fuck");}}一开始很傻很天真的我以为想不被fuck,将fuck的门槛调高就行了: