diff options
Diffstat (limited to 'misc/log4j')
-rw-r--r-- | misc/log4j/.gitignore | 5 | ||||
-rw-r--r-- | misc/log4j/pom.xml | 94 | ||||
-rw-r--r-- | misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/LogFileNamer.java | 81 | ||||
-rw-r--r-- | misc/log4j/src/main/java/org/onap/aaf/misc/env/log4j/PIDAccess.java | 30 | ||||
-rw-r--r-- | misc/log4j/src/test/java/org/onap/aaf/misc/env/log4j/LogTest.java | 45 | ||||
-rw-r--r-- | misc/log4j/src/test/resources/.gitignore | 1 |
6 files changed, 256 insertions, 0 deletions
diff --git a/misc/log4j/.gitignore b/misc/log4j/.gitignore new file mode 100644 index 00000000..45aeec64 --- /dev/null +++ b/misc/log4j/.gitignore @@ -0,0 +1,5 @@ +/target/ +/.settings/ +/.classpath +/logs/ +/.project diff --git a/misc/log4j/pom.xml b/misc/log4j/pom.xml new file mode 100644 index 00000000..facb2f7a --- /dev/null +++ b/misc/log4j/pom.xml @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2017 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==================================================== + * +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <groupId>org.onap.aaf.misc</groupId> + <artifactId>parent</artifactId> + <version>1.3.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + + <modelVersion>4.0.0</modelVersion> + <artifactId>aaf-misc-log4j</artifactId> + <name>AAF Misc Log4J</name> + <packaging>jar</packaging> + + <developers> + <developer> + <name>Jonathan Gathman</name> + <email>jonathan.gathman@att.com</email> + <organization>ATT</organization> + <roles> + <role>Architect</role> + <role>Lead Developer</role> + </roles> + </developer> + <developer> + <name>Gabe Maurer</name> + <email>gabe.maurer@att.com</email> + <organization>ATT</organization> + <roles> + <role>Developer</role> + </roles> + </developer> + <developer> + <name>Ian Howell</name> + <email>ian.howell@att.com</email> + <organization>ATT</organization> + <roles> + <role>Developer</role> + </roles> + </developer> + </developers> + + <dependencies> + <dependency> + <groupId>org.onap.aaf.misc</groupId> + <artifactId>aaf-misc-env</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>net.java.dev.jna</groupId> + <artifactId>jna-platform</artifactId> + <version>4.0.0</version> + </dependency> + + </dependencies> + + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + <version>2.6</version> + <configuration> + <skip>false</skip> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> + +</project> 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 |