X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fserver%2FLog4JLogIt.java;h=284a7dec877339ee2a04f4f5d729a72baddcdc54;hb=82755753f41112e1cdd91b2994620ad074dfbf20;hp=0b91c9fc67971766253630866a747244a7e85dbf;hpb=abf7c0e407c97250c07d408c314c5aa1c757263e;p=aaf%2Fauthz.git diff --git a/auth/auth-core/src/main/java/org/onap/aaf/auth/server/Log4JLogIt.java b/auth/auth-core/src/main/java/org/onap/aaf/auth/server/Log4JLogIt.java index 0b91c9fc..284a7dec 100644 --- a/auth/auth-core/src/main/java/org/onap/aaf/auth/server/Log4JLogIt.java +++ b/auth/auth-core/src/main/java/org/onap/aaf/auth/server/Log4JLogIt.java @@ -7,9 +7,9 @@ * 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. @@ -20,81 +20,115 @@ */ package org.onap.aaf.auth.server; +import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; import org.apache.log4j.Logger; import org.onap.aaf.cadi.Access.Level; import org.onap.aaf.cadi.PropAccess; import org.onap.aaf.cadi.PropAccess.LogIt; +import org.onap.aaf.cadi.config.Config; import org.onap.aaf.misc.env.APIException; import org.onap.aaf.misc.env.log4j.LogFileNamer; +import org.onap.aaf.misc.env.util.Chrono; public class Log4JLogIt implements LogIt { - // Sonar says cannot be static... it's ok. not too many PropAccesses created. - private final SimpleDateFormat iso8601 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); - - private final String service; - private final String audit; - private final String init; - private final String trace; + protected static final String AAF_LOG4J_PREFIX = "aaf_log4j_prefix"; + // Log4j does it's own date. Can't apparently turn it off. + + private final String service; + private final String audit; + private final String init; + private final String trace; + + private final Logger lservice; + private final Logger laudit; + private final Logger linit; + private final Logger ltrace; + + + public Log4JLogIt(final String[] args, final String root) throws APIException { + String propsFile = getArgOrVM(AAF_LOG4J_PREFIX, args, "org.osaaf.aaf")+".log4j.props"; + String logDir = getArgOrVM(Config.CADI_LOGDIR,args,"/opt/app/osaaf/logs"); + String etcDir = getArgOrVM(Config.CADI_ETCDIR,args,"/opt/app/osaaf/etc"); + String logLevel = getArgOrVM(Config.CADI_LOGLEVEL,args,"INFO"); + File logs = new File(logDir); + if (!logs.isDirectory()) { + logs.delete(); + } + if (!logs.exists()) { + logs.mkdirs(); + } + + if (System.getProperty("log4j.configuration")==null) { + System.setProperty("log4j.configuration", etcDir+'/'+propsFile); + } + LogFileNamer lfn = new LogFileNamer(logDir,root); + try { + service=lfn.setAppender("service"); // when name is split, i.e. authz|service, the Appender is "authz", and "service" + audit=lfn.setAppender("audit"); // is part of the log-file name + init=lfn.setAppender("init"); + trace=lfn.setAppender("trace"); + + lservice = Logger.getLogger(service); + laudit = Logger.getLogger(audit); + linit = Logger.getLogger(init); + ltrace = Logger.getLogger(trace); + + lfn.configure(etcDir,propsFile, logLevel); + } catch (IOException e) { + throw new APIException(e); + } + } - private final Logger lservice; - private final Logger laudit; - private final Logger linit; - private final Logger ltrace; + private static final String getArgOrVM(final String tag, final String args[], final String def) { + String tagEQ = tag + '='; + String value; + for (String arg : args) { + if (arg.startsWith(tagEQ)) { + return arg.substring(tagEQ.length()); + } + } + // check System.properties + value = System.getProperty(tag); + if (value!=null) { + return value; + } + return def; + } - public Log4JLogIt(final String log_dir, final String log_level, final String propsFile, final String root) throws APIException { - LogFileNamer lfn = new LogFileNamer(log_dir,root); - try { - service=lfn.setAppender("service"); // when name is split, i.e. authz|service, the Appender is "authz", and "service" - audit=lfn.setAppender("audit"); // is part of the log-file name - init=lfn.setAppender("init"); - trace=lfn.setAppender("trace"); + @Override + public void push(Level level, Object... elements) { + switch(level) { + case AUDIT: + laudit.warn(PropAccess.buildMsg(audit, Chrono.utcFmt, level, elements)); + break; + case INIT: + linit.warn(PropAccess.buildMsg(init, Chrono.utcFmt, level, elements)); + break; + case ERROR: + lservice.error(PropAccess.buildMsg(service, Chrono.utcFmt, level, elements)); + break; + case WARN: + lservice.warn(PropAccess.buildMsg(service, Chrono.utcFmt, level, elements)); + break; + case INFO: + lservice.info(PropAccess.buildMsg(service, Chrono.utcFmt, level, elements)); + break; + case DEBUG: + lservice.debug(PropAccess.buildMsg(service, Chrono.utcFmt, level, elements)); + break; + case TRACE: + ltrace.trace(PropAccess.buildMsg(service, Chrono.utcFmt, level, elements)); + break; + case NONE: + break; + default: + lservice.info(PropAccess.buildMsg(service, Chrono.utcFmt, level, elements)); + break; - lservice = Logger.getLogger(service); - laudit = Logger.getLogger(audit); - linit = Logger.getLogger(init); - ltrace = Logger.getLogger(trace); - - lfn.configure(propsFile, log_level); - } catch (IOException e) { - throw new APIException(e); - } - } - - @Override - public void push(Level level, Object... elements) { - switch(level) { - case AUDIT: - laudit.warn(PropAccess.buildMsg(audit, iso8601, level, elements)); - break; - case INIT: - linit.warn(PropAccess.buildMsg(init, iso8601, level, elements)); - break; - case ERROR: - lservice.error(PropAccess.buildMsg(service, iso8601, level, elements)); - break; - case WARN: - lservice.warn(PropAccess.buildMsg(service, iso8601, level, elements)); - break; - case INFO: - lservice.info(PropAccess.buildMsg(service, iso8601, level, elements)); - break; - case DEBUG: - lservice.debug(PropAccess.buildMsg(service, iso8601, level, elements)); - break; - case TRACE: - ltrace.trace(PropAccess.buildMsg(service, iso8601, level, elements)); - break; - case NONE: - break; - default: - lservice.info(PropAccess.buildMsg(service, iso8601, level, elements)); - break; - - } + } - } + } }