- // 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);
+ }
+ }