log4j日志路径中加入日期_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > log4j日志路径中加入日期

log4j日志路径中加入日期

 2013/11/8 0:15:28  bro_feng  程序员俱乐部  我要评论(0)
  • 摘要:要用log4j使用记录日志,日志路径有每日的日期,文件大小5M新增文件。实现方式log4j:<appendername="serviceLog"class="org.apache.log4j.RollingFileAppender"><paramname="Encoding"value="UTF-8"/><paramname="File"value="logs/service.log"/><
  • 标签:
要用log4j使用记录日志,日志路径有每日的日期,文件大小5M新增文件。
实现方式
log4j:
class="java"><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的空文件。目前还在查找原因。
上一篇: 创建lucene时document字段属性的选择 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名