几天后,logback文件消失了

时间:2014-06-03 22:08:17

标签: java slf4j logback user-permissions

我有一个名为appname的java程序,它使用logbacksl4fj进行记录。

期望:

  • 日志文件每天午夜滚动,所有生成的日志文件将保留30天 设置<maxHistory>30</maxHistory>

  • 使用绝对路径指定日志文件模式,如<fileNamePattern>/var/log/appname/logfile.%d{yyyy-MM-dd}.log</fileNamePattern>

  • 在linux服务器(CentOS)上创建了一个用户appname,成为java程序appname.jar的所有者, /var/log/appname,只允许此appname用户运行该程序。

我遇到的问题:

我让它保持运行,不幸的是,appname程序启动5天后,文件滚动工作正常但是logfile.log(滚动记录当天的数据)消失了, 所有生成的日志文件(前几天日志)仍然存在。

编辑:我运行了两次程序,logfile.log在第4天(我第一次运行它)消失了,并且在第5天(我第二次运行它)消失了

帮助

有没有人对此有任何想法?

我的猜测:

  1. 是否与logback&amp; sl4fj
  2. 有关
  3. 许可问题?
  4. 是否因为日志文件大小(未设置限制大小,每个大小约为15GB)?
  5. <configuration debug="true"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder><pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern></encoder> </appender> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>/var/log/appname/logfile.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>/var/log/appname/logfile.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5p %c - %m%n</pattern> </encoder> </appender> <root level="DEBUG"> <appender-ref ref="FILE" /> <!-- <appender-ref ref="STDOUT" /> --> </root> </configuration> <logger name="org.apache.zookeeper"> <level value="ERROR"/> <appender-ref ref="FILE"/> </logger>

    任何帮助将不胜感激,提前感谢!

1 个答案:

答案 0 :(得分:1)

<?xml version="1.0" encoding="UTF-8"?>

经过多天的测试,我发现我的logback文件中缺少上面这行,在我将其添加为我的logback文件的第一行后,滚动工作正常,希望它可以帮助人们与我有类似的问题