我有安装TimeBasedRollingPolicy对转出每分钟(测试目的)的文件,我面临的问题是一个警告,并正在创建任何ZIP或GZ文件。 警告是:
log4j的:WARN在后接近侧翻动作失灵
我附源推测出的问题,但都没有成功呢。 我失去了我的log4j.xml任何配置?
<appender name="errorAppender" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="File" value="C:/error.log"/>
<param name="Append" value="true"/>
<param name="BufferedIO" value="true"/>
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="C:/error.%d{ddMMMyyyy HH:mm:ss}.log.gz" />
<param name="ActiveFileName" value="C:/error.log"/>
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %C (line:%L) - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="error"/>
<param name="LevelMin" value="error"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
</appender>
我使用log4j的-1.2.17和Apache的log4j的,额外-1.1。 有人看到这个问题,或者有关于它的任何线索?
用“ 的log4j:WARN在关闭后侧翻动作失灵 ”问题的消息是,在基于Windows的系统,你不能与创建一个文件名“:”字符,所以指定的FileNamePattern不应包含其中任何一个:\, /,:,*,?,”,<,>,|
这是我的应用程序工作正常使用滚动文件附加目的地一的log4j.xml。 出于测试目的,我所做的滚动创建一个新的文件,每一秒:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="consola" class="org.apache.log4j.ConsoleAppender">
<param name="target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="conversionPattern" value="[%d{yyyyMMdd HH:mm:ss:mm,SSS}]%-5p [%t] [%c{1}-%M:%L] - %m%n"/>
</layout>
</appender>
<appender name="desarr" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="Append" value="false"/>
<rollingPolicy name="desarr" class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="fileNamePattern" value="C:/workspace/Probador/log/backups/importacion222.log_%d{mmss_mm}"/>
<param name="activeFileName" value="C:/workspace/Probador/log/importacion222.log"/>
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="conversionPattern" value="[%d{yyyyMMdd HH:mm:ss:mm,SSS}]%-5p [%t] [%c{1}-%M] - %m%n"/>
</layout>
</appender>
<root>
<priority value ="debug" />
<appender-ref ref="consola" />
<appender-ref ref="desarr"/>
</root>
</log4j:configuration>
特别注意:
<param name="fileNamePattern" value="C:/workspace/Probador/log/backups/importacion222.log_%d{mmss_mm}"/>
试图在压缩文件之前,试试这个。
我打的log4j同样的问题与WARN消息 - “的log4j:WARN在后接近侧翻动作失灵”和日志文件没有翻身。 这是根导致权限问题上的不足,这将日志文件获取写入的目录。 在这种情况下,Java的File.renameTo()方法默默地失败(只是返回一个布尔值false)。 花了大量的时间来弄清楚这个问题:(
我使用log4j的-1.2.17和Apache的log4j的,额外-1.1。 有没有人看到这个问题,并有相关线索?
我一直在使用log4j的 - 1.2也观察到了这个问题。 16和Apache的log4j的,额外-1.1。 确切的同样的信息。
我曾尝试过各种调整都无济于事。 当它没有appender->文件参数和rollingPolicy-> ActiveFileName参数使用时rollingPolicy-> FileNamePattern似乎是观察到的唯一时间。 但是即便这样我还没有看到它翻转成功也不GZ或zip以前的文件。
我也得到同样的信息:
log4j: setFile called: somepath/somefile.log, true
log4j: setFile ended
log4j:WARN Failure in post-close rollover action
非常令人沮丧。
我也有同样的问题,但对我来说,这是因为一个事实,即在“fileNamePattern”路径文件夹不存在。 整顿是为我工作,并正在创建的翻转文件即可。
如果您使用的是org.apache.log4j.rolling.TimeBasedRollingPolicy rollingPolicy,那么目录必须要的log4j能够旋转之前存在。
例如,如果在/ var /日志/胡说/存档/ YYYY / MM目录中存在以下侧翻只会工作; 在夜间的cronjob应该做的伎俩创建它。 而且,正如前面提到的,这也将在没有足够的权限创建日志文件出现。
<appender name="infoFile"
class="org.apache.log4j.rolling.RollingFileAppender">
<param name="threshold"
value="INFO"/>
<param name="append"
value="true"/>
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="ActiveFileName"
value="/var/log/blah/file.log"/>
<!-- IMPORTANT the archive folder must already exist, or log4j cannot
put the rotated log there, and will keep using the old one -->
<param name="FileNamePattern"
value="/var/log/blah/archive/%d{yyyy}/%d{MM}/file.log.%d{yyyy-MM-dd}.gz"/>
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%5p | %-40c{2} | %-4L | %d{yyyy-MM-dd}T%d{HH:mm:ss} | %m%n"/>
</layout>
</appender>