\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.apache.log4j.Logger;\r
\r
/**\r
* This class provides a {@link TimerTask} that purges old logfiles (older than the number of days specified by the\r
\r
private final String logdir;\r
private final long interval;\r
- private Logger utilsLogger;\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
-\r
- this.utilsLogger = Logger.getLogger("org.onap.dmaap.datarouter.provisioning.utils");\r
-\r
- long n = 30;\r
+ Properties prop = (new DB()).getProperties();\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
- }\r
+ purgeLogFiles(dir);\r
}\r
} catch (Exception e) {\r
- utilsLogger.error("Exception: " + e.getMessage());\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