预备知识
日志级别:log4j默认六个级别,即trace、debug、info、warn、error、fatal ,对应意味着该消息为追踪、调试、普通信息、警告、错误、严重错误。可以根据需要子定义其他级别。
实际操作
1、导入jar包
2、编写配置文件(记得要放在classpath下面,否则会找不到的)
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration status="OFF"> <!-- appenders用于定义日志输出地appender--> <appenders> <!-- 日志输出地为控制台 --> <Console name="Console" target="SYSTEM_OUT"> <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--> <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/> <!-- PatternLayout,用于定义输出的格式 ,以下:时间 线程名 日志级别左对齐占5格 logger名 消息 --> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> <!-- 日志输出地为文件 --> <!--append="false",这个log每次运行程序会自动清空,适合临时测试用--> <File name="log" fileName="log/test.log" append="false"> <!-- 没有定义过滤器,默认打印所有级别的信息 --> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> </File> <!-- 日志输出地为循环文件,即大于阈值则生成新的文件 --> <!--这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档--> <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> <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效--> <loggers> <!-- 所有的logger会继承root的配置 --> <root level="trace"> <appender-ref ref="RollingFile"/> <appender-ref ref="Console"/> </root> </loggers> </configuration>
3、在代码中的实际运用
package com.zay; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.json.JSONException; import com.module.dao.MainDao; public class Test21 { //效果和private static Logger logger = LogManager.getLogger(Test21.class.getName())一样。 //logger名为com.zay.Test21,会继承配置文件中root的配置 private static Logger logger = LogManager.getLogger(); public static void main(String[] args) throws JSONException{ //输出日志信息 logger.trace("追踪信息.."); logger.debug("调试信息.."); logger.info("普通信息.."); logger.warn("警告信息.."); logger.error("错误信息.."); logger.fatal("严重错误信息.."); } }
4、查看运行效果
根据输出了日志文件
同时控制台打印信息如下
参考博文
Log4j 2使用教程 http://www.cnblogs.com/leo-lsw/p/log4j2tutorial.html