log4j2使用笔记

来源:互联网 发布:知乎 国民党 编辑:程序博客网 时间:2024/04/30 07:20

最近项目经常在使用调试,挂在服务器上有时候很多错误System.out输出,在tomcat控制台间隔太久时间就看不到了。就想到log4j。


首先下载最新版本的log4j,现在是2.0。打开 http://logging.apache.org/log4j/2.x/download.html 下载 apache-log4j-2.0-rc1-bin.zip

之后吧压缩包里面的log4j-api-2.0.rc1.jarlog4j-core-2.0-rc1.jar两个必须的包拷贝到项目下面。再选择两个jar右击Add to build path添加到项目中。

之后编写代码:

package log4jDemo;import java.util.logging.Level;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;public class HelloWorld {private static Logger logger = LogManager.getLogger(HelloWorld.class);public static void main(String[] args) {logger.entry();logger.info("Info Test");logger.error("Error Test");logger.debug("debug Test");logger.exit();}}
输出结果


只显示了error的记录。 因为log4j默认设置等级为error,其他等级低的信息不会打印。所以接下来要写配置文件(设置记录等级,设置写到XX文件等)


配置文件2.0只能使用 xml或者json的方式。

我这里使用xml


在项目src目录下面建立 log4j2.xml  文件名固定的!


<?xml version="1.0" encoding="UTF-8"?><configuration status="OFF"><appenders><!-- 设置输出格式   --><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /></Console><!-- 设置将信息输入到logs目录下的app.log --><RollingFile name="RollingFile" fileName="logs/app.log"                     filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>            <SizeBasedTriggeringPolicy size="50MB"/>        </RollingFile></appenders><loggers><!-- 设置等级,error则显示>=error等级的错误,debug则显示>=debug等级的错误(显示debug info error...)级别顺序(高到低):FATAL > ERROR > WARN >INFO > DEBUGFATAL level指出每个严重的错误事件将会导致应用程序的退出。  ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。  WARN level表明会出现潜在错误的情形。  INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。   DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。  --><root level="debug"><!-- 添加上方配置的输出格式Console以及输出到文件RollingFile --><appender-ref ref="Console" /> <appender-ref ref="RollingFile"/></root></loggers></configuration>

现在运行输出结果:


然后项目下自动生成logs目录及app.log文件
app.log文件内容


若需要关闭log4j功能,则将log4j2.xml中 将 level="OFF" 设置为off则log4j不再记录

<root level="OFF"><!-- 添加上方配置的输出格式Console以及输出到文件RollingFile --><appender-ref ref="Console" /> <appender-ref ref="RollingFile"/></root>

0 0
原创粉丝点击