java - Log4J dailyrolling fileappender,控制滚动文件名

标签 java spring jakarta-ee logging log4j

我有以下配置:

log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender
log4j.appender.debug.File=/path/to/log/log.txt
log4j.appender.debug.Append=true
log4j.appender.debug.DatePattern=.yyyy-MM-dd-HH-mm-ss
log4j.appender.debug.layout=org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern=%n================================%n%d{yyyy-MM-dd-HH-mm-ss}%n%c%n%m %x%n--------------------------------%n

当前,滚动的文件称为:

log.txt.2014-10-26-14-12-33

使用上面的 DatePattern,但是我希望文件名滚动为:

2014-10-26-14-12-33.log.txt

但是,似乎即使我删除开头的点并将其添加到末尾,文件名仍然附加到开头。所以:

log4j.appender.debug.DatePattern=yyyy-MM-dd-HH-mm-ss'.ending'

仍然记录为

log.txt.2014-10-26-14-12-33.ending

原因是我希望文件可以在文件资源管理器中轻松排序。我有几个日志文件。

有没有办法让 log4j 不将文件名添加到滚动文件的开头?

最佳答案

不幸的是,除非您自定义并重写 http://grepcode.com/file/repo1.maven.org/maven2/log4j/log4j/1.2.14/org/apache/log4j/DailyRollingFileAppender.java 中名为 rollover 的方法,否则不会。 .

它确实:

String datedFilename = fileName+sdf.format(now);

您需要执行以下操作:

String datedFilename = sdf.format(now).toString();

并在 log4j xml 中使用该类。

关于java - Log4J dailyrolling fileappender,控制滚动文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26573538/

相关文章:

java - 如何在 JPA 中进行高等教育协会

java - 访问作业参数 Spring Batch

java - 提交 jsp 时请求的资源不可用

java - 映射以在 Dozer 中设置映射解决方法

java - LayoutParams 需要 API 19?

mysql - com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException : Duplicate entry 'USER' for key 'PRIMARY'

java - Spring 3 注释 : xml-less Declarative Transaction Management

jsp - Java EE中的JspWriter和PrintWriter之间的区别?

java - 如何使用 Spring MVC 和 Java 获取基本的 HTTP 身份验证数据

java - 带有 ExtJS 的 IIS 服务器前端客户端无法向 Java 后端服务器应用程序请求(Store.load)