From 37e47101836b20ee495962a6d813a9d5f8d9109a Mon Sep 17 00:00:00 2001 From: sg481n Date: Thu, 3 Aug 2017 17:44:44 -0400 Subject:  [AAF-23] Initial code import MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I8c0dc03058ae4fbb85c28a050bdd77e6c372d6c3 Signed-off-by: sg481n --- log4j/.gitignore | 4 + log4j/pom.xml | 143 +++++++++++++++++++++ .../java/com/att/inno/env/log4j/LogFileNamer.java | 83 ++++++++++++ .../java/com/att/inno/env/log4j/PIDAccess.java | 32 +++++ .../test/java/com/att/inno/env/log4j/LogTest.java | 45 +++++++ log4j/src/test/resources/log4j-test.properties | 62 +++++++++ 6 files changed, 369 insertions(+) create mode 100644 log4j/.gitignore create mode 100644 log4j/pom.xml create mode 100644 log4j/src/main/java/com/att/inno/env/log4j/LogFileNamer.java create mode 100644 log4j/src/main/java/com/att/inno/env/log4j/PIDAccess.java create mode 100644 log4j/src/test/java/com/att/inno/env/log4j/LogTest.java create mode 100644 log4j/src/test/resources/log4j-test.properties (limited to 'log4j') diff --git a/log4j/.gitignore b/log4j/.gitignore new file mode 100644 index 0000000..b981306 --- /dev/null +++ b/log4j/.gitignore @@ -0,0 +1,4 @@ +/target/ +.settings +.project +.classpath diff --git a/log4j/pom.xml b/log4j/pom.xml new file mode 100644 index 0000000..66e307c --- /dev/null +++ b/log4j/pom.xml @@ -0,0 +1,143 @@ + + + + com.att.inno + parent + 1.2.13 + .. + + + Log4J Elements + log4j + jar + 4.0.0 + https://github.com/att/AAF + INNO + + + BSD License + + + + + + + Jonathan Gathman + + ATT + + + + + + + com.att.inno + env + ${project.version} + + + + net.java.dev.jna + jna-platform + 4.0.0 + + + + + + + ossrhdme + https://oss.sonatype.org/content/repositories/snapshots + + + ossrhdme + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + + https://github.com/att/AAF.git + ${project.scm.connection} + http://github.com/att/AAF/tree/master + + + + + + org.apache.maven.plugins + maven-deploy-plugin + 2.6 + + false + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + false + + + + attach-javadocs + + jar + + + + + + + + org.apache.maven.plugins + maven-source-plugin + 2.2.1 + + + attach-sources + + jar-no-fork + + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.7 + true + + ossrhdme + https://oss.sonatype.org/ + true + + + + + + diff --git a/log4j/src/main/java/com/att/inno/env/log4j/LogFileNamer.java b/log4j/src/main/java/com/att/inno/env/log4j/LogFileNamer.java new file mode 100644 index 0000000..3ef0f52 --- /dev/null +++ b/log4j/src/main/java/com/att/inno/env/log4j/LogFileNamer.java @@ -0,0 +1,83 @@ +/******************************************************************************* + * ============LICENSE_START==================================================== + * * org.onap.aai + * * =========================================================================== + * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * * Copyright © 2017 Amdocs + * * =========================================================================== + * * 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==================================================== + * * + * * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * * + ******************************************************************************/ +package com.att.inno.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/log4j/src/main/java/com/att/inno/env/log4j/PIDAccess.java b/log4j/src/main/java/com/att/inno/env/log4j/PIDAccess.java new file mode 100644 index 0000000..77b77a6 --- /dev/null +++ b/log4j/src/main/java/com/att/inno/env/log4j/PIDAccess.java @@ -0,0 +1,32 @@ +/******************************************************************************* + * ============LICENSE_START==================================================== + * * org.onap.aai + * * =========================================================================== + * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * * Copyright © 2017 Amdocs + * * =========================================================================== + * * 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==================================================== + * * + * * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * * + ******************************************************************************/ +package com.att.inno.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/log4j/src/test/java/com/att/inno/env/log4j/LogTest.java b/log4j/src/test/java/com/att/inno/env/log4j/LogTest.java new file mode 100644 index 0000000..69ff8c4 --- /dev/null +++ b/log4j/src/test/java/com/att/inno/env/log4j/LogTest.java @@ -0,0 +1,45 @@ +/******************************************************************************* + * ============LICENSE_START==================================================== + * * org.onap.aai + * * =========================================================================== + * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * * Copyright © 2017 Amdocs + * * =========================================================================== + * * 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==================================================== + * * + * * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * * + ******************************************************************************/ +package com.att.inno.env.log4j; + +import java.util.logging.Logger; + + +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/log4j/src/test/resources/log4j-test.properties b/log4j/src/test/resources/log4j-test.properties new file mode 100644 index 0000000..b56e904 --- /dev/null +++ b/log4j/src/test/resources/log4j-test.properties @@ -0,0 +1,62 @@ +#------------------------------------------------------------------------------- +# ============LICENSE_START==================================================== +# * org.onap.aai +# * =========================================================================== +# * Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# * Copyright © 2017 Amdocs +# * =========================================================================== +# * 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==================================================== +# * +# * ECOMP is a trademark and service mark of AT&T Intellectual Property. +# * +#------------------------------------------------------------------------------- +############################################################################### +# Copyright (c) 2016 AT&T Intellectual Property. All rights reserved. +############################################################################### +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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. +# +log4j.rootLogger=INFO,test + +log4j.appender.test=org.apache.log4j.RollingFileAppender +#log4j.appender.test.File=logs/cdv-${PID}.log +log4j.appender.test.File=logs/${LOG4J_FILENAME_test} +log4j.appender.test.MaxFileSize=10000KB +log4j.appender.test.MaxBackupIndex=7 +log4j.appender.test.layout=org.apache.log4j.PatternLayout +log4j.appender.test.layout.ConversionPattern=%d %p [%c] - %m %n + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m %n + +# General Apache libraries +log4j.logger.org.apache=WARN + +log4j.DEBUG=true -- cgit 1.2.3-korg