X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=misc%2Flog4j%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fmisc%2Fenv%2Flog4j%2FLogFileNamer.java;h=9a615fb868d33cf65e9b4fb318cf5212cd206bae;hb=ff1417ff60baee231a28272f9a16ef2c9c8ea0a2;hp=a98ba7c05b9f4662ece81839188e1f2e861a95c8;hpb=ed39a027a78a0ca08230b1d34c5dac5421819018;p=aaf%2Fauthz.git diff --git a/misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/LogFileNamer.java b/misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/LogFileNamer.java index a98ba7c0..9a615fb8 100644 --- a/misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/LogFileNamer.java +++ b/misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/LogFileNamer.java @@ -23,66 +23,68 @@ package org.onap.aaf.misc.env.log4j; import java.io.File; import java.io.IOException; import java.net.URL; -import java.text.SimpleDateFormat; -import java.util.Date; public class LogFileNamer { - private final String root; - private final String ending; - private final String dir; + private final String root; + private final String dir; - public LogFileNamer(final String dir, final String root) { - this.dir = dir; - if (root == null || "".equals(root) || root.endsWith("/")) { - this.root = root; - } else { - this.root = root + "-"; - } - ending = new SimpleDateFormat("YYYYMMdd").format(new Date()); - } + public LogFileNamer(final String dir, final String root) { + this.dir = dir; + if (root == null || "".equals(root) || root.endsWith("/")) { + this.root = root; + } else { + this.root = root + "-"; + } + } - public LogFileNamer noPID() { - return this; - } + public LogFileNamer noPID() { + return this; + } - private static final String FILE_FORMAT_STR = "%s/%s%s%s_%d.log"; + private static final String FIRST_FILE_FORMAT_STR = "%s/%s%s.log"; + private static final String FILE_FORMAT_STR = "%s/%s%s.%d.log"; - /** - * Accepts a String. If Separated by "|" then first part is the Appender name, - * and the second is used in the FileNaming (This is to allow for shortened - * Logger names, and more verbose file names) ONAP: jna code has license issues. - * Just do Date + Unique Number - * - * @param appender - * - * returns the String Appender - * @throws IOException - */ - public String setAppender(String appender) throws IOException { - String filename; - int i = 0; - File f; - while ((f = new File(filename = String.format(FILE_FORMAT_STR, dir, root, appender, ending, i))).exists()) { - ++i; - } - ; - f.createNewFile(); - System.setProperty("LOG4J_FILENAME_" + appender, filename); - return appender; - } + /** + * Accepts a String. If Separated by "|" then first part is the Appender name, + * and the second is used in the FileNaming (This is to allow for shortened + * Logger names, and more verbose file names) ONAP: jna code has license issues. + * Just do Date + Unique Number + * + * @param appender + * + * returns the String Appender + * @throws IOException + */ + public String setAppender(String appender) throws IOException { + File f = new File(String.format(FIRST_FILE_FORMAT_STR, dir, root, appender)); + if(f.exists()) { + int i = 0; + while ((f = new File(String.format(FILE_FORMAT_STR, dir, root, appender, i))).exists()) { + ++i; + } + } + + try { + f.createNewFile(); + } catch (IOException e) { + throw new IOException("Cannot create file '" + f.getCanonicalPath() + '\'', e); + } + System.setProperty("LOG4J_FILENAME_" + appender, f.getCanonicalPath()); + return appender; + } - public void configure(final String path, final String fname, final String log_level) throws IOException { - final String fullPath = path + '/' + fname; - if (new File(fullPath).exists()) { - org.apache.log4j.PropertyConfigurator.configureAndWatch(fullPath, 60 * 1000L); - } else { - URL rsrc = ClassLoader.getSystemResource(fname); - if (rsrc == null) { - String msg = "Neither File: " + path + '/' + fname + " nor resource on Classpath " + fname + " exist"; - throw new IOException(msg); - } - org.apache.log4j.PropertyConfigurator.configure(rsrc); - } + public void configure(final String path, final String fname, final String log_level) throws IOException { + final String fullPath = path + '/' + fname; + if (new File(fullPath).exists()) { + org.apache.log4j.PropertyConfigurator.configureAndWatch(fullPath, 60 * 1000L); + } else { + URL rsrc = ClassLoader.getSystemResource(fname); + if (rsrc == null) { + String msg = "Neither File: " + path + '/' + fname + " nor resource on Classpath " + fname + " exist"; + throw new IOException(msg); + } + org.apache.log4j.PropertyConfigurator.configure(rsrc); + } - } + } }