log4j2和log4j是一个作者,只不过log4j2是重新架构的一款日志组件,他抛弃了之前log4j的不足,以及吸取了优秀的logback的设计重新推出的一款新组件。
一:引入jar包
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-web</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.5</version> </dependency>
二:web.xml配置
<listener> <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class> </listener> <filter> <filter-name>log4jServletFilter</filter-name> <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class> </filter> <filter-mapping> <filter-name>log4jServletFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> <dispatcher>ERROR</dispatcher> </filter-mapping>
logj2.xml文件放在根目录下会自动加载,我放在resource目录下。
三:log4j2.xml文件配置。注意文件名
<?xml version="1.0" encoding="UTF-8"?> <configuration status="warn" monitorInterval="30"> <appenders> <Console name="Console" target="SYSTEM_OUT"> <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" /> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS}|${hostName}|%-5level{lowerCase=true}|%t|%c|%msg%n"/> </Console> <RollingFile name="RollingFile" fileName="${sys:catalina.home}/logs/tasking.log" filePattern="${sys:catalina.home}/logs/$${date:yyyy-MM}/vane-%d{MM-dd-yyyy}-%i.log.gz" ignoreExceptions="false"> <PatternLayout> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}|${hostName}|%-5level{lowerCase=true}|%t|%c|%msg%n</Pattern> </PatternLayout> <SizeBasedTriggeringPolicy size="200 MB"/> </RollingFile> </appenders> <Loggers> <!--过滤掉spring和mybatis的一些无用的DEBUG信息--> <logger name="org.springframework" level="INFO"></logger> <logger name="org.mybatis" level="INFO"></logger> <!-- 配置日志的根节点 --> <root level="all"> <appender-ref ref="Console"/> <appender-ref ref="RollingFile"/> </root> </Loggers> </configuration>
四:代码调用:
import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; private static Logger logger = LogManager.getLogger(Test.class.getName());