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=fd0691b66c6a4cccd727fcee2158b353c1cb96c0;hb=7e966914050e66219689001ff4ab601a49eef0ac;hp=0b91c9fc67971766253630866a747244a7e85dbf;hpb=c36423577d5b8501af78cc2f8a7db1e43eacdf0d;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..fd0691b6 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 @@ -20,6 +20,7 @@ */ package org.onap.aaf.auth.server; +import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; @@ -27,74 +28,109 @@ 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; 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"; - private final Logger lservice; - private final Logger laudit; - private final Logger linit; - private final Logger ltrace; + // 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; + private final Logger lservice; + private final Logger laudit; + private final Logger linit; + private final Logger ltrace; - 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"); - 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; - - } + public Log4JLogIt(final String[] args, final String root) throws APIException { + String propsFile = getArgOrVM(AAF_LOG4J_PREFIX, args, "org.osaaf.aaf")+".log4j.props"; + String log_dir = getArgOrVM(Config.CADI_LOGDIR,args,"/opt/app/osaaf/logs"); + String etc_dir = getArgOrVM(Config.CADI_ETCDIR,args,"/opt/app/osaaf/etc"); + String log_level = getArgOrVM(Config.CADI_LOGLEVEL,args,"INFO"); + File logs = new File(log_dir); + if (!logs.isDirectory()) { + logs.delete(); + } + if (!logs.exists()) { + logs.mkdirs(); + } - } + if (System.getProperty("log4j.configuration")==null) { + System.setProperty("log4j.configuration", etc_dir+'/'+propsFile); + } + 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"); + + lservice = Logger.getLogger(service); + laudit = Logger.getLogger(audit); + linit = Logger.getLogger(init); + ltrace = Logger.getLogger(trace); + + lfn.configure(etc_dir,propsFile, log_level); + } catch (IOException e) { + throw new APIException(e); + } + } + + 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; + } + + @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; + + } + + } }