java - 如何以编程方式清除日志文件?

标签 java slf4j logback

我在 logback 文件中设置了两个日志文件。

<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
              <fileNamePattern>/opt/loghome/${instance}/recon.%d{MM-dd-yyyy}.log.zip
              </fileNamePattern>
              <maxHistory>30</maxHistory>
        </rollingPolicy>
        <append>false</append>
        <encoder>
              <pattern>%d{MM/dd/yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%X{User} %msg%n</pattern>
        </encoder>
  </appender>

  <appender name="datafile1" class="ch.qos.logback.core.FileAppender">
        <file>/opt/loghome/datafiles/file1.log</file>
        <append>false</append>
        <encoder>
              <pattern>%msg%n</pattern>
        </encoder>
  </appender>

在 java 中,这些设置如下:

private static final Logger logger = LoggerFactory
              .getLogger(Main.class);

private static final Logger logger = LoggerFactory
              .getLogger("datafile1");

第一个是标准应用程序日志文件。第二个存储程序从数据库检索的数据。

然后程序会比较日志文件中的数据并发送一些结果。完成后,我想清除此日志(datafile1),使其为空并准备好下次运行。我怎样才能做到这一点?

注意,该程序是一个 24 小时进程,使用调度程序来运行此作业。每次运行作业时它不会重新启动。

最佳答案

您似乎正在使用日志文件作为数据存储?日志文件不是为此而设计的,因此实际上没有办法清除它们。如果您想将数据存储在临时位置,请打开一个文件进行写入,而不是记录它。

关于java - 如何以编程方式清除日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10092937/

相关文章:

java - 从 Java 8 中的并行流中收集

logging - 无法更改 slf4j simplelogger 的日志级别

java - Spring boot-1.5.8 应用程序中的 Logback 从 1.1.11 升级到 1.3.0-alpha4

java - Spring、SLF4J 和 Logback - 自定义数据库附加程序

java - Java 中数组传递给函数时的有趣之处

java - 无法使用 swt Transform 旋转透明图像

java - logback 中的totalSizeCap 似乎没有按预期工作

logging - logback,如何在附加之前更改日志事件中的消息

java - Dropwizard 不会将自定义记录器记录到文件中

java - 为什么此重定向不起作用?日本科学基金会