summaryrefslogtreecommitdiffstats
path: root/misc/log4j/src
diff options
context:
space:
mode:
Diffstat (limited to 'misc/log4j/src')
-rw-r--r--misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/LogFileNamer.java177
-rw-r--r--misc/log4j/src/test/java/org/onap/aaf/misc/env/log4j/JU_LogFileNamerTest.java88
2 files changed, 176 insertions, 89 deletions
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 cc4c8a96..a98ba7c0 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
@@ -1,89 +1,88 @@
-/**
- * ============LICENSE_START====================================================
- * org.onap.aaf
- * ===========================================================================
- * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
- * ===========================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END====================================================
- *
- */
-
-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;
-
- 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 noPID() {
- return this;
- }
-
- private static final String FILE_FORMAT_STR = "%s/%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;
- }
-
- 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);
- }
-
- }
-}
+/**
+ * ============LICENSE_START====================================================
+ * org.onap.aaf
+ * ===========================================================================
+ * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+ * ===========================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END====================================================
+ *
+ */
+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;
+
+ 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 noPID() {
+ return this;
+ }
+
+ private static final String FILE_FORMAT_STR = "%s/%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;
+ }
+
+ 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);
+ }
+
+ }
+}
diff --git a/misc/log4j/src/test/java/org/onap/aaf/misc/env/log4j/JU_LogFileNamerTest.java b/misc/log4j/src/test/java/org/onap/aaf/misc/env/log4j/JU_LogFileNamerTest.java
new file mode 100644
index 00000000..0ee79a5f
--- /dev/null
+++ b/misc/log4j/src/test/java/org/onap/aaf/misc/env/log4j/JU_LogFileNamerTest.java
@@ -0,0 +1,88 @@
+/**
+ * ============LICENSE_START====================================================
+ * org.onap.aaf
+ * ===========================================================================
+ * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+ * ===========================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END====================================================
+ *
+ */
+package org.onap.aaf.misc.env.log4j;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class JU_LogFileNamerTest {
+
+ private String ending = new SimpleDateFormat("YYYYMMdd").format(new Date());
+
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ @Test
+ public void test() throws IOException {
+ LogFileNamer logFileNamer = new LogFileNamer(".", "log");
+ assertEquals(logFileNamer, logFileNamer.noPID());
+
+ logFileNamer.setAppender("Append");
+ assertEquals(System.getProperty("LOG4J_FILENAME_Append"), "./log-Append" + ending + "_0.log");
+
+ logFileNamer.setAppender("Append");
+ assertEquals(System.getProperty("LOG4J_FILENAME_Append"), "./log-Append" + ending + "_1.log");
+ }
+
+ @Test
+ public void testBlankRoot() throws IOException {
+ LogFileNamer logFileNamer = new LogFileNamer(".", "");
+ assertEquals(logFileNamer, logFileNamer.noPID());
+
+ logFileNamer.setAppender("Append");
+ assertEquals(System.getProperty("LOG4J_FILENAME_Append"), "./Append" + ending + "_0.log");
+
+ logFileNamer.setAppender("Append");
+ assertEquals(System.getProperty("LOG4J_FILENAME_Append"), "./Append" + ending + "_1.log");
+ }
+
+ @After
+ public void tearDown() throws IOException {
+ File file = new File("./log-Append" + ending + "_0.log");
+ if (file.exists()) {
+ Files.delete(Paths.get(file.getAbsolutePath()));
+ }
+ file = new File("./log-Append" + ending + "_1.log");
+ if (file.exists()) {
+ Files.delete(Paths.get(file.getAbsolutePath()));
+ }
+ file = new File("./Append" + ending + "_0.log");
+ if (file.exists()) {
+ Files.delete(Paths.get(file.getAbsolutePath()));
+ }
+ file = new File("./Append" + ending + "_1.log");
+ if (file.exists()) {
+ Files.delete(Paths.get(file.getAbsolutePath()));
+ }
+ }
+
+}