当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

log4j日志路径中加入日期

发表于: 2013-11-07   作者:bro_feng   来源:转载   浏览:
摘要: 要用log4j使用记录日志,日志路径有每日的日期,文件大小5M新增文件。 实现方式 log4j: <appender name="serviceLog" class="org.apache.log4j.RollingFileAppender"> <param name="Encoding" v
要用log4j使用记录日志,日志路径有每日的日期,文件大小5M新增文件。
实现方式
log4j:
<appender name="serviceLog"
		class="org.apache.log4j.RollingFileAppender">
      	<param name="Encoding" value="UTF-8" />
 		<param name="File" value="logs/service.log" />     
		<param name="Append" value="true" />  
		<param name="MaxBackupIndex" value="10" />  
		<param name="MaxFileSize" value="5MB" />   
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%L] %m%n" />
		</layout>
	</appender>

	<root>
		<level value="debug" />
		<appender-ref ref="serviceLog" />
	</root>


在内存总修改路径,加入日期:
String currentDateTem = CommonUtil.getCurrentDateString("yyyyMMdd");
		 
		 if(currentDate.equals(currentDateTem)){
			 return;
		 }else{
			 currentDate = currentDateTem;
		 }
		  
		  FileAppender appender = (FileAppender) LogManager.getLoggerRepository().getRootLogger().getAppender("serviceLog");
		
		  String fileName = appender.getFile();
		  String[] filepaths = fileName.split("/");
		  String newFileName = null;
		
		  
		  // 如果路径是一层,将日期放在文件名前面,如果文件名有多层,将日期放在第一层的后面
		  if(filepaths.length == 1){
			  newFileName = currentDate + "/" + fileName;
		  }else{
			  Boolean flag = Boolean.FALSE;
			  for(String str : filepaths){
				  if(!flag){
					  newFileName = str + "/" + currentDate;
					  flag = Boolean.TRUE;
					}else{
					newFileName = newFileName + "/" + str;
					}
			  }
		  }
		
		appender.setFile(newFileName);
		appender.activateOptions();		// 激活设置


最后一个激活设置很重要。

目前还有一个问题是会生成一个logs/service.log的空文件。目前还在查找原因。

log4j日志路径中加入日期

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
The conclusion comes like that: The current path (./)is stands for the project location.(see
(一).首先配置好SSH jar包 (二).在web.xml中配置监听器: <!-- 加载log4j配置文件 --> &l
Java中给项目程序添加log主要有三种方式,一使用JDK中的java.util.logging包,一种是log4j,一种是c
本文原文出自我的个人网站【思考者日记】原创作品,允许转载,转载时请务必以超链接形式标明文章 原
转:http://blog.csdn.net/silentbalanceyh/article/details/4564902 .Java中的异常、断言、日志【
(本章主要讲解Java里面比较核心的一块内容——异常处理,Java异常处理机制,一致都是比较复杂的一
转:http://blog.csdn.net/silentbalanceyh/article/details/4564902 .Java中的异常、断言、日志【
项目结构图 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:/
log4j可以支持将log输出到文件,数据库,甚至远程服务器,这次给大家分享下如何输出到mysql中。 (1
 log4j可以支持将log输出到文件,数据库,甚至远程服务器,这次给大家分享下如何输出到mysql中
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号