log4j2的配置使用

关键词:java、maven、log4j.xml

一:添加依赖

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-1.2-api</artifactId>
    <version>2.3</version>
</dependency>

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-web</artifactId>
    <version>2.3</version>
</dependency>

二:log4j.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<!-- status用来指定log4j本身的打印日志的级别
     monitorinterval用于指定log4j自动重新配置的监测间隔时间,单位是s,最小是5s -->
<Configuration status="debug" monitorInterval="5">
	<Properties>
		<!-- 文件夹创建到eclipse根目录或tomcat的bin(部署到Tomcat) -->
		<Property name="logPath" >logs/eCommunity</Property>
		<!-- 绝对路径正常 -->
		<!-- <Property name="logPath" >D:/logs/eCommunity.log</Property> -->
		<Property name="warnLog">warnLog</Property>
		<Property name="patternLayout">%d %-5p [%t] %m (%c:%F:%L) %n</Property>
	</Properties>
	
	<Appenders>
		<Console name="console">
			<PatternLayout pattern="${patternLayout}" />
		</Console>
		<RollingRandomAccessFile name="allFile" fileName="${logPath}/all.log" filePattern="${logPath}/all.log.%d{yyyy-MM-dd}" immediateFlush="true">
			<Policies>
				<TimeBasedTriggeringPolicy />
			</Policies>
			<!-- 过滤 -->
			<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
			<PatternLayout pattern="${patternLayout}" />
		</RollingRandomAccessFile>
		 <File name="log" fileName="D:/logs/ServerLogMain.log" append="true">  
      		<PatternLayout pattern=""${patternLayout}""/>  
    	 </File> 
    	 <!-- 日志通过文件大小和时间备份 -->
    	 <RollingRandomAccessFile name="${warnLog}" fileName="${logPath}/${warnLog}.log" filePattern="${logPath}/${warnLog}.log.%d{yyyy-MM-dd-HH}_%i.log"  immediateFlush="true">
    	 	<Policies>
    	 	<!-- interval,integer型,指定两次封存动作之间的时间间隔。单位:以日志的命名精度来确定单位,比如yyyy-MM-dd-HH 单位为小时 -->
    	 	<!-- modulate,boolean型,说明是否对封存时间进行调制。若modulate=true,则封存时间将以0点为边界进行偏移计算 -->
    	 		<TimeBasedTriggeringPolicy interval="24"  modulate="true"/>    	 	  	 	
    	 		<SizeBasedTriggeringPolicy size="50MB" />  	 	
    	 	</Policies>
    	 	<!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 -->
    	 	<DefaultRolloverStrategy max="20"/>
    	 	<PatternLayout pattern="${patternLayout}" />
    	 </RollingRandomAccessFile>
	</Appenders>
	
	<Loggers>
		<Logger name="ServerLog" level="debug">		
			 <appender-ref ref="log"/>  
		</Logger>
		<Logger name="com.yihao01" level="info"/>
		<Logger name="com.yihao01.park.local.dao" level="info"/>
		<Logger name="com.yihao01.framework.http.ApiHttpClient" level="trace"/>
		<Logger name="java.sql.Connection" level="info"/>
		<Logger name="java.sql.PreparedStatement" level="info"/>
		<Logger name="java.sql.ResultSet" level="info"/>		
		<Logger name="org.springframework" level="info"/>
		<Logger name="org.springframework.jdbc" level="info"/>
		<Logger name="org.springframework.jdbc.core.StatementCreatorUtils" level="info"/>		
		<Logger name="com.oeasy.eCommunity.sqlMappers" level="info"/>
		<!-- name:用来指定该Logger所适用的类或者类所在的包全路径。
		    appender-ref:Logger的子节点,用来指定该日志输出到哪个Appender,如果没有指定,就会默认继承自Root.如果指定了,
		     那么会在指定的这个Appender和Root的Appender中都会输出,此时我们可以设置Logger的additivity="false"只在自定义
                     的Appender中进行输出 -->
		<Logger name="org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver" additivity="true" level="warn" >
		    <appender-ref ref="${warnLog}"></appender-ref>
		</Logger>
		
		<!-- includeLocation 加上位置信息比如哪个类,第几行 -->
		<AsyncRoot level="debug" includeLocation="true">
		    <AppenderRef ref="allFile" />
			<AppenderRef ref="console" /> 
		</AsyncRoot>
	</Loggers>
</Configuration>
三:使用实例

import org.apache.log4j.Logger;

public class LogDemo {
	private static Logger logger = logger.getLogger(LogDemo.class);

	public static void main(String[] args) {
		logger.info("++++ info +++++");
		logger.error("++++ error ++++");
	}
}

四:需求

 
 
 重新配置一下ecommunity-cloud 的log4j2日志,实现以下功能。 1. 让异常日志可以打多一份 2. 日志文件除了按日期备份外,达到50MB以上也要备份并重新记录。 3. 配置可以在debug的情况下排查日志,线上环境正常运行的时候只记录关键日志。 


五:参考博客

配置说明:http://5148737.blog.51cto.com/5138737/1398581

PatternLayout说明:http://blog.csdn.net/guoquanyou/article/details/5689652


注意事项:当用到log4j记录日志时,会先找log4j.xml,找不到再去找log4j.properties






















































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值