直接上代码:
pom.xml配置
<dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>3.3.2</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j2.vsersion}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j2.vsersion}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-jcl</artifactId> <version>${log4j2.vsersion}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-web</artifactId> <version>${log4j2.vsersion}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-1.2-api</artifactId> <version>${log4j2.vsersion}</version> <type>jar</type> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>${log4j2.vsersion}</version> </dependency> <dependency> <groupId>org.bgee.log4jdbc-log4j2</groupId> <artifactId>log4jdbc-log4j2-jdbc4</artifactId> <version>1.16</version> </dependency> <log4j2.vsersion>2.3</log4j2.vsersion>
disruptor日志异步写入,log4j-api,log4j-core必选的,log4j-jcl对Spring的支持,网络应用添加log4j-web,例如和SpringMVC集成
log4j2.xml配置
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="warn" name="webclient" packages=""> <Appenders> <RollingFile name="RollingFile" fileName="logs/web.log" filePattern="logs/$${date:yyyy-MM}/web-%d{MM-dd-yyyy}-%i.log"> <PatternLayout> <Pattern>%d [%p] %c %m%n</Pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="50 MB" /> </Policies> </RollingFile> <Console name="Console" target="SYSTEM_OUT"> <!-- 将日志信息从控制台输出 --> <PatternLayout pattern="%d [%p] %c %m%n" /> </Console> </Appenders> <Loggers> <asyncRoot level="ERROR"> <appender-ref ref="RollingFile" /> <appender-ref ref="Console" /> </asyncRoot> </Loggers> </Configuration>
其中asyncRoot作为日志异步写入。
如果有针对部分不同处理添加
<logger name="cn.web.admin" level="trace" additivity="false"> <appender-ref ref="Console"/> </logger> web.xm
<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>
必须有log4j-web的依赖
更强的配置还是看官网文档吧,比较全
http://logging.apache.org/log4j/2.x/