log4j之不同类产生日志存储不同日志文件中

log4j在项目的运用的必须的,有时候我们需要用他来记录一些很重要的信息,但是一些繁琐的,没必要的信息,我们就没必要在记录进去了,所以,今天来分享一下,如何将不同类产生的日志信息存储到不同的日志文件内、

首先,我们要把log4j的jar包导入
<dependency>  
    	<groupId>log4j</groupId>  
    	<artifactId>log4j</artifactId>  
    	<version>1.2.17</version>  
	</dependency> 


其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优 先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
#控制log信息输出的级别和方式  
log4j.rootLogger=DEBUG,console,FILE 
#允许log信息显示在控制台上 
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.threshold=TRACE
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.conversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n


log4j.logger.com.ibatis=TRACE
#将sql相关信息打印,例如运行的sql语句,连接状态等
log4j.logger.com.xiao.dao=TRACE
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=TRACE
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=TRACE
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=TRACE
log4j.logger.java.sql.Connection=TRACE
log4j.logger.java.sql.Statement=TRACE
log4j.logger.java.sql.PreparedStatement=TRACE,console

#控制log信息输出的格式
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.Append=true
log4j.appender.FILE.File=springmvc.log
log4j.appender.FILE.Threshold=DEBUG
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n
log4j.appender.FILE.MaxFileSize=20MB

log4j.org.springframework.web=DEBUG
这是我们平常基本的一些配置,那么,如果我们需要在不同类记录信息时
1》、需要声明多个log,然后声明该方法的名字,我们以登录为例
#login.log
log4j.logger.login=INFO,login    
log4j.appender.login=org.apache.log4j.DailyRollingFileAppender   
log4j.appender.login.File=${log4jdir}/logs/login.log
log4j.appender.login.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.login.layout=org.apache.log4j.PatternLayout  
log4j.appender.login.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n
log4j.additivity.login=true
第一条配置就是在声明方法名
第二条配置是每天产生一个日志
第三条配置是控制日志输出的路径,至于${log4jdir}我已经通过web.xml去配置了一个路径,所以在这里直接使用
至于下面几条就不一一介绍了
2》、然后在我们需要使用log输出信息的类中声明
private static final Logger login = Logger.getLogger("login");//调用log4j.properties里面声明的日志文件名
	private static Log log = LogFactory.getLog(AccountController.class);//声明日志类
注意了,里面的参数名必须和log4j.properties里面的相同
3》、然后我们在需要测试的方法内,输出信息即可
login.info("当前登录用户:"+gymOwner.getAccount());
		login.info("登录时间:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
然后运行我们的项目,我们就可以在我们定义的路径下,找到刚刚生成的log文件




然后打开里面的内容就可以看到我们输出的信息了
2017-04-12 16:06:35,402 INFO [login 77 com.yunyunsport.web.AccountController.login(AccountController.java:77)] - 当前登录用户:lisi
2017-04-12 16:06:35,406 INFO [login 78 com.yunyunsport.web.AccountController.login(AccountController.java:78)] - 登录时间:2017-04-12 16:06:35




猜你喜欢

转载自blog.csdn.net/qiuqiu_qiuqiu123/article/details/70055488