我在 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/