\r
package org.onap.dmaap.datarouter.provisioning.utils;\r
\r
+import com.att.eelf.configuration.EELFLogger;\r
+import com.att.eelf.configuration.EELFManager;\r
import java.io.File;\r
+import java.io.IOException;\r
+import java.nio.file.Files;\r
+import java.util.Objects;\r
import java.util.Properties;\r
import java.util.TimerTask;\r
+import org.onap.dmaap.datarouter.provisioning.ProvRunner;\r
\r
/**\r
- * This class provides a {@link TimerTask} that purges old logfiles\r
- * (older than the number of days specified by the org.onap.dmaap.datarouter.provserver.logretention property).\r
+ * This class provides a {@link TimerTask} that purges old logfiles (older than the number of days specified by the\r
+ * org.onap.dmaap.datarouter.provserver.logretention property).\r
*\r
* @author Robert Eby\r
* @version $Id: PurgeLogDirTask.java,v 1.2 2013/07/05 13:48:05 eby Exp $\r
*/\r
public class PurgeLogDirTask extends TimerTask {\r
+\r
private static final long ONEDAY = 86400000L;\r
\r
private final String logdir;\r
private final long interval;\r
+ private EELFLogger utilsLogger;\r
\r
+ /**\r
+ * PurgeLogDirTask constructor.\r
+ */\r
public PurgeLogDirTask() {\r
- Properties p = (new DB()).getProperties();\r
- logdir = p.getProperty("org.onap.dmaap.datarouter.provserver.accesslog.dir");\r
- String s = p.getProperty("org.onap.dmaap.datarouter.provserver.logretention", "30");\r
- long n = 30;\r
+ Properties prop = ProvRunner.getProvProperties();\r
+ logdir = prop.getProperty("org.onap.dmaap.datarouter.provserver.accesslog.dir");\r
+ String str = prop.getProperty("org.onap.dmaap.datarouter.provserver.logretention", "30");\r
+ this.utilsLogger = EELFManager.getInstance().getLogger("UtilsLog");\r
+ long retention = 30;\r
try {\r
- n = Long.parseLong(s);\r
+ retention = Long.parseLong(str);\r
} catch (NumberFormatException e) {\r
// ignore\r
}\r
- interval = n * ONEDAY;\r
+ interval = retention * ONEDAY;\r
}\r
\r
@Override\r
try {\r
File dir = new File(logdir);\r
if (dir.exists()) {\r
- long exptime = System.currentTimeMillis() - interval;\r
- for (File logfile : dir.listFiles()) {\r
- if (logfile.lastModified() < exptime)\r
- logfile.delete();\r
- }\r
+ purgeLogFiles(dir);\r
}\r
} catch (Exception e) {\r
- e.printStackTrace();\r
+ utilsLogger.error("Exception: " + e.getMessage(), e);\r
+ }\r
+ }\r
+\r
+ private void purgeLogFiles(File dir) {\r
+ long exptime = System.currentTimeMillis() - interval;\r
+ for (File logfile : Objects.requireNonNull(dir.listFiles())) {\r
+ if (logfile.lastModified() < exptime) {\r
+ try {\r
+ Files.delete(logfile.toPath());\r
+ } catch (IOException e) {\r
+ utilsLogger.error("Failed to delete file: " + logfile.getPath(), e);\r
+ }\r
+ }\r
}\r
}\r
}\r