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.java81
-rw-r--r--misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/PIDAccess.java30
-rw-r--r--misc/log4j/src/test/java/org/onap/aaf/misc/env/log4j/LogTest.java45
-rw-r--r--misc/log4j/src/test/resources/.gitignore1
4 files changed, 157 insertions, 0 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
new file mode 100644
index 00000000..a8830b47
--- /dev/null
+++ b/misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/LogFileNamer.java
@@ -0,0 +1,81 @@
+/**
+ * ============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.net.URL;
+
+public class LogFileNamer {
+ public static final int pid = PIDAccess.INSTANCE.getpid();
+ public final String root;
+ private boolean printPID;
+
+ public LogFileNamer(String root) {
+ if(root==null || "".equals(root) || root.endsWith("/")) {
+ this.root = root;
+ } else {
+ this.root = root + "-";
+ }
+ printPID=true;
+ }
+
+ public LogFileNamer noPID() {
+ printPID = false;
+ return this;
+ }
+ /**
+ * 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)
+ *
+ * @param appender
+ *
+ * returns the String Appender
+ */
+ public String setAppender(String appender) {
+ int pipe = appender.indexOf('|');
+ if(pipe>=0) {
+ String rv;
+ System.setProperty(
+ "LOG4J_FILENAME_"+(rv=appender.substring(0,pipe)),
+ root + appender.substring(pipe+1) + (printPID?('-' + pid):"") + ".log");
+ return rv;
+ } else {
+ System.setProperty(
+ "LOG4J_FILENAME_"+appender,
+ root + appender + (printPID?('-' + pid):"") + ".log");
+ return appender;
+ }
+
+ }
+
+ public void configure(String props) {
+ String fname;
+ if(new File(fname="etc/"+props).exists()) {
+ org.apache.log4j.PropertyConfigurator.configureAndWatch(fname,60*1000);
+ } else {
+ URL rsrc = ClassLoader.getSystemResource(props);
+ if(rsrc==null) System.err.println("Neither File: " + fname + " or resource on Classpath " + props + " exist" );
+ org.apache.log4j.PropertyConfigurator.configure(rsrc);
+ }
+ }
+}
diff --git a/misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/PIDAccess.java b/misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/PIDAccess.java
new file mode 100644
index 00000000..6e23ce63
--- /dev/null
+++ b/misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/PIDAccess.java
@@ -0,0 +1,30 @@
+/**
+ * ============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 com.sun.jna.Library;
+import com.sun.jna.Native;
+
+public interface PIDAccess extends Library {
+ PIDAccess INSTANCE = (PIDAccess) Native.loadLibrary("c", PIDAccess.class);
+ int getpid ();
+}
diff --git a/misc/log4j/src/test/java/org/onap/aaf/misc/env/log4j/LogTest.java b/misc/log4j/src/test/java/org/onap/aaf/misc/env/log4j/LogTest.java
new file mode 100644
index 00000000..d5c9062f
--- /dev/null
+++ b/misc/log4j/src/test/java/org/onap/aaf/misc/env/log4j/LogTest.java
@@ -0,0 +1,45 @@
+/**
+ * ============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.util.logging.Logger;
+
+import org.onap.aaf.misc.env.log4j.LogFileNamer;
+
+
+public class LogTest
+{
+ public static void main(String[] args) throws Exception
+ {
+ LogFileNamer lfn = new LogFileNamer("authz");
+ lfn.setAppender("service");
+ lfn.setAppender("init");
+ lfn.setAppender("audit");
+ lfn.setAppender("test");
+ lfn.configure("src/test/resources/log4j-test.properties");
+ Logger log = Logger.getLogger( "init" );
+
+
+
+ log.info("Hello");
+ }
+}
diff --git a/misc/log4j/src/test/resources/.gitignore b/misc/log4j/src/test/resources/.gitignore
new file mode 100644
index 00000000..2079777e
--- /dev/null
+++ b/misc/log4j/src/test/resources/.gitignore
@@ -0,0 +1 @@
+/log4j-test.properties