今天发现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的门槛调高就行了:
引用
log4j.logger.fuck = error
结果,当然是和同样很傻很天真的阿娇一样。正如这个社会,fuck与不fuck,都不取决于fuck这件事本身,重点是谁在fuck:
引用
log4j.logger.java.lang = error
至此,我终于保住了菊花。
附上我的输出格式:
ConversionPattern=<%d{HH:mm:ss}|%p> %l <%c>%n%m%n%n
最后提醒一下,官方特别强调,有输出完整类名的参数,都会带来很大的性能开销,所以在release的时候需要注意移除。
分享到:
相关推荐
设置log4j的根目录,值为 日志等级(DEBUG,INFO,WARN,ERROR,FATAL) , 输出目标名称 log4j.rootLogger=DEBUG,A1 设置输出方式,常用的有: ConsoleAppender 在控制器中输出信息 RollingFileApperder 在文件中输出...
log4j-如何控制指定类,包的日志输出级别: https://blog.csdn.net/u011479200/article/details/102476242
配置文件是 Log4j 的核心组件之一,通过配置文件可以灵活地控制日志的输出。 Log4j 的配置方式 Log4j 提供了多种配置方式,包括: * 通过配置文件来配置 Log4j * 通过 Java 代码来配置 Log4j Log4j 的输出级别 ...
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过...
log4j错误打印到控制台 并且输出sql语句
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...
设置log4j的根目录,值为 日志等级(DEBUG,INFO,WARN,ERROR,FATAL) , 输出目标名称 log4j.rootLogger=DEBUG,A1 设置输出方式,常用的有: ConsoleAppender 在控制器中输出信息 RollingFileApperder 在文件中输出...
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出...
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...
Log4j有三个主要的组件:Loggers,Appenders和Layouts,这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松的记录信息的类型和级别,并可以在运行时控制日志输出的样式和...
Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties(键=值)。下面将介绍使用log4j.properties文件作为配置文件的方法:
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出...
java 日志log4j加载 Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条...
Log4J(Log for java)是Apache的一个开放源代码项目,它是一个日志操作包,通过使用Log4J,可以指定日志信息输出的目的地,如控制台、文件、CUI组件、NT的事件记录器;还可以控制每一条日志输出格式。此外,通过...
log4j.rootLogger=INFO,CONSOLE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender INFO是日志记录的最低等级,必须写,它和比它高的等级会进入日志,如WARN、ERROR、FATAL、OFF。 关于8个日志等级,参考:...
NULL 博文链接:https://xiebin-javalover.iteye.com/blog/1932019
通过Log4J可以在不修改代码的情况下,方便、灵活地控制任意粒度的日志信息的开启或关闭,然后使用定制的格式,把日志信息输出到一个或多个需要的地方。并且,Log4J还有一条平滑的学习曲线,在三分钟内就可学会它的...
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过...