`

log4j日志路径中加入日期

阅读更多
要用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从入门到详解

    Log4j是一款由Apache组织提供的开源日志组件,被广泛应用于Java应用程序中。它可以帮助开发者在应用程序中记录日志信息,这对于调试程序、追踪错误以及进行系统监控等方面具有重要作用。 在应用程序中加入日志记录...

    log4j需要的2个jar包

    Log4j是Apache组织提供的一款开源的日志框架,它以其灵活性和可配置性著称,被广泛应用在各种Java项目中。本篇文章将详细探讨标题和描述中提到的两个关键组件——`log4j-1.2.15.jar`和`commons-logging.jar`,以及...

    Log4j 入门到详解[推荐].pdf

    除了基本的日志记录之外,还可以利用Log4j进行更复杂的日志管理,例如使用MDC(Mapped Diagnostic Context)为日志增加上下文信息。 ```java import org.apache.log4j.MDC; import org.apache.log4j.Logger; ...

    log4j2lib.rar

    在JavaWeb项目中,我们可以在web.xml中配置ContextListener,初始化Log4j2,然后在代码中通过LoggerFactory获取logger实例进行日志记录。通过合理配置,可以实现不同级别的日志信息分别存储,便于调试和问题排查。 ...

    apache-log4j-2.9.1 jar包下载

    引入Log4j到项目中,一般需要在类路径下添加对应的jar文件,并通过配置文件(如`log4j2.xml`或`log4j2.json`)来定制日志行为。配置文件可以控制日志输出的位置(如文件、控制台、网络等)、级别、过滤规则以及使用...

    非web工程使用slf4j输出日志

    在使用SLF4J之前,首先需要在项目的类路径中包含SLF4J的API jar包以及一个具体的日志实现库,例如Logback或Log4j。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml &lt;!-- SLF4J API --&gt; &lt;groupId&gt;...

    log4j详细配置

    接着,需要创建一个名为`log4j.properties`的配置文件,并将其放置在类路径(CLASSPATH)中。该文件用于定义日志输出的具体设置,如日志级别、输出目的地等。 #### 三、log4j.properties配置解析 接下来,我们将...

    LOG4J配置PPT

    4. 配置输出格式和目的地:调整LOG4J的配置文件(通常为`log4j.properties`),指定日志的格式(如日期、级别、类名等)和输出到何处。 LOG4J配置文件(`log4j.properties`)通常包括: - 定义记录器的级别,例如:...

    log4j的配置文件

    3. **通过环境变量传递配置文件路径**:log4j默认会读取环境变量中的路径信息进行配置。 4. **通过应用服务器配置**:某些应用服务器提供了配置log4j的方式,可以在服务器的配置文件中指定log4j配置文件的位置。 ...

    log4j DailyMaxRollingFileAppender

    其中,`DailyMaxRollingFileAppender`是Log4j中的一个关键组件,专门用于处理按日期滚动的日志文件。本文将深入探讨`DailyMaxRollingFileAppender`的工作原理、配置方法及其在实际应用中的重要性。 一、...

    log4cplus使用说明

    log4cplus是一款专为C++设计的开源日志框架,其前身源自Java语言的log4j日志系统。log4cplus以其强大的线程安全性、灵活性及多级别的日志控制能力著称,非常适合应用于程序的开发、调试、测试乃至后期的维护阶段。它...

    hive2.0+开启审计日志.pdf

    然而,在Hive 3.0+版本中,由于采用了Log4j2作为默认的日志框架,开启审计日志的过程与Hive 1.0中使用Log4j有所不同。 在Hive 3.0+中,我们需要编辑`hive-log4j2.properties`配置文件来实现审计日志功能。以下是一...

    chapter001

    首先,我们需要在Eclipse插件项目的类路径中引入Log4j的库文件。这通常通过Maven或Gradle等构建工具完成,添加对应的依赖配置。例如,在Maven的pom.xml文件中,可以加入以下依赖: ```xml &lt;groupId&gt;log4j ...

    Java自定义日志工具类

    在实际开发中,创建自定义的日志工具类通常会基于已有的日志框架,如Log4j、SLF4J(Simple Logging Facade for Java)或Logback。这些框架提供了一套完整的API来处理日志,同时允许通过配置文件进行灵活的配置。例如...

    log4net 配置与应用

    它作为log4j(Java平台的日志库)的姊妹产品,同样具备强大的功能和灵活性,能够帮助开发者高效地管理和记录应用程序中的日志信息。 #### 二、安装与引入log4net 为了开始使用log4net,首先需要下载log4net库,并将...

    java基础知识

    Log4J是一个非常流行的Java日志框架,被广泛应用于各种规模的应用程序中。它提供了强大的日志记录功能,并且可以通过灵活的配置来满足不同场景的需求。本文将详细介绍Log4J配置文件的基本概念、配置方法及实际应用...

    分割Tomcat日志

    cronolog是一款用于日志轮转(log rotation)的工具,它支持按照日期、时间等条件对日志文件进行分割。相比传统的logrotate工具,cronolog更专注于实时日志轮转,能够实时地按日期或时间进行日志文件的切割,非常适合...

    java的日志合并

    此外,也可以考虑使用第三方库如Apache Commons IO或Log4j等来简化日志处理过程,提高代码的可读性和可维护性。 通过以上分析可以看出,该Java程序实现了一个较为基础的日志文件合并功能。开发者可以根据实际需求对...

    SpringBoot日志配置简单介绍

    2. 加入其他日志实现的依赖项,例如 Log4j2 3. 把相应日志配置文件放入到 classpath 下 例如,可以在 pom.xml 文件中添加以下依赖项来使用 Log4j2: ```xml &lt;groupId&gt;org.apache.logging.log4j &lt;artifactId&gt;log...

Global site tag (gtag.js) - Google Analytics