X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=datarouter-prov%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fdmaap%2Fdatarouter%2Fprovisioning%2Futils%2FPurgeLogDirTask.java;h=92ab86da43c7f339ce22de45714f90d5a3c7fec4;hb=1ccd9c36ba12849148f9eb73e8ff2ffe4ade5870;hp=7b0e0e610934886f14d37aa2d967f296904044e9;hpb=4261823d84c2b911b68cdf4cb4dc3be429ebe285;p=dmaap%2Fdatarouter.git diff --git a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/utils/PurgeLogDirTask.java b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/utils/PurgeLogDirTask.java index 7b0e0e61..92ab86da 100644 --- a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/utils/PurgeLogDirTask.java +++ b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/utils/PurgeLogDirTask.java @@ -24,34 +24,45 @@ package org.onap.dmaap.datarouter.provisioning.utils; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.Objects; import java.util.Properties; import java.util.TimerTask; /** - * This class provides a {@link TimerTask} that purges old logfiles - * (older than the number of days specified by the org.onap.dmaap.datarouter.provserver.logretention property). + * This class provides a {@link TimerTask} that purges old logfiles (older than the number of days specified by the + * org.onap.dmaap.datarouter.provserver.logretention property). * * @author Robert Eby * @version $Id: PurgeLogDirTask.java,v 1.2 2013/07/05 13:48:05 eby Exp $ */ public class PurgeLogDirTask extends TimerTask { + private static final long ONEDAY = 86400000L; private final String logdir; private final long interval; + private EELFLogger utilsLogger; + /** + * PurgeLogDirTask constructor. + */ public PurgeLogDirTask() { - Properties p = (new DB()).getProperties(); - logdir = p.getProperty("org.onap.dmaap.datarouter.provserver.accesslog.dir"); - String s = p.getProperty("org.onap.dmaap.datarouter.provserver.logretention", "30"); - long n = 30; + Properties prop = (new DB()).getProperties(); + logdir = prop.getProperty("org.onap.dmaap.datarouter.provserver.accesslog.dir"); + String str = prop.getProperty("org.onap.dmaap.datarouter.provserver.logretention", "30"); + this.utilsLogger = EELFManager.getInstance().getLogger("UtilsLog"); + long retention = 30; try { - n = Long.parseLong(s); + retention = Long.parseLong(str); } catch (NumberFormatException e) { // ignore } - interval = n * ONEDAY; + interval = retention * ONEDAY; } @Override @@ -59,14 +70,23 @@ public class PurgeLogDirTask extends TimerTask { try { File dir = new File(logdir); if (dir.exists()) { - long exptime = System.currentTimeMillis() - interval; - for (File logfile : dir.listFiles()) { - if (logfile.lastModified() < exptime) - logfile.delete(); - } + purgeLogFiles(dir); } } catch (Exception e) { - e.printStackTrace(); + utilsLogger.error("Exception: " + e.getMessage(), e); + } + } + + private void purgeLogFiles(File dir) { + long exptime = System.currentTimeMillis() - interval; + for (File logfile : Objects.requireNonNull(dir.listFiles())) { + if (logfile.lastModified() < exptime) { + try { + Files.delete(logfile.toPath()); + } catch (IOException e) { + utilsLogger.error("Failed to delete file: " + logfile.getPath(), e); + } + } } } }