如何编程清除日志文件?

我有一个文件的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");

第一个是标准的应用程序的日志文件。 该程序从一分贝retreives所述第二存储数据。

然后程序日志文件中的数据进行比较,并发出了一些成果。 完成此步骤后,我想清楚了这个记录(datafile1),所以它是空的,并准备下一次运行。 我怎样才能做到这一点?

铌的程序是使用调度运行此作业提供全天候24小时的过程。 它不会重新启动每个作业运行的时间。

--------------解决方案-------------

看来你正在使用的日志文件作为数据存储? 日志文件是不适合这个,所以没有实际的方式来清除它们。 如果你想将数据存储在一个临时位置,打开写文件,不记录它。

你可以尝试关闭的appender并添加另一个追加程序到您的Logger 。 下面的例子:

Logger logger = Logger.getLogger("datafile1");
logger.setLevel(Level.ALL);

FileAppender appender = new FileAppender(new PatternLayout("%msg%n"), "/logs/datafile", false);
Logger.getRootLogger().addAppender(appender);

// log data
logger.info("info1");

// here you remove and close the old appender
Logger.getRootLogger().removeAppender(appender);
appender.close();

// replace with a new one appender
appender = new FileAppender(new PatternLayout("%msg%n"), "/logs/datafile", false);
Logger.getRootLogger().addAppender(appender);

// log new data
logger.info("info2");

结束了使用此:

public void resetLogs() {

LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
ContextInitializer ci = new ContextInitializer(lc);
lc.reset();
try {
ci.autoConfig();
} catch (JoranException e) {
e.printStackTrace();
}
}

要刷新LoggerContext背景

分类:java的 时间:2015-03-15 人气:0
本文关键词: Java中,的logback,SLF4J
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.333 (s). 10 q(s)