X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cadi%2Fcore%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fcadi%2FPropAccess.java;h=9f4b4b9f0ae53ccbd2f47aaf4928824c9e09e878;hb=c42c3f014a3a84bbb9f12f690fdf2a840f9138a4;hp=fac6a3f1f5ac24604d42d39c81fac1d734825ba2;hpb=f6f44f558ce4f04605269f71a10d6df054295f6a;p=aaf%2Fauthz.git diff --git a/cadi/core/src/main/java/org/onap/aaf/cadi/PropAccess.java b/cadi/core/src/main/java/org/onap/aaf/cadi/PropAccess.java index fac6a3f1..9f4b4b9f 100644 --- a/cadi/core/src/main/java/org/onap/aaf/cadi/PropAccess.java +++ b/cadi/core/src/main/java/org/onap/aaf/cadi/PropAccess.java @@ -3,6 +3,8 @@ * org.onap.aaf * =========================================================================== * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * + * Modifications Copyright (C) 2018 IBM. * =========================================================================== * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,12 +23,14 @@ package org.onap.aaf.cadi; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintStream; import java.io.PrintWriter; +import java.io.StringBufferInputStream; import java.io.StringWriter; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -43,6 +47,7 @@ import org.onap.aaf.cadi.util.Split; public class PropAccess implements Access { // Sonar says cannot be static... it's ok. not too many PropAccesses created. private final SimpleDateFormat iso8601 = newISO8601(); + private Symm symm; public static SimpleDateFormat newISO8601() { return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); @@ -50,7 +55,7 @@ public class PropAccess implements Access { public static final Level DEFAULT = Level.AUDIT; - private Symm symm; + private int level; private Properties props; private List recursionProtection = null; @@ -108,7 +113,6 @@ public class PropAccess implements Access { protected synchronized void init(Properties p) { // Make sure these two are set before any changes in Logging name = "cadi"; - level=DEFAULT.maskOf(); props = new Properties(); // First, load related System Properties @@ -127,16 +131,14 @@ public class PropAccess implements Access { // Preset LogLevel String sLevel = props.getProperty(Config.CADI_LOGLEVEL); - if (sLevel!=null) { - level=Level.valueOf(sLevel).maskOf(); - } - // Third, load any Chained Property Files load(props.getProperty(Config.CADI_PROP_FILES)); if(sLevel==null) { // if LogLev wasn't set before, check again after Chained Load sLevel = props.getProperty(Config.CADI_LOGLEVEL); - if (sLevel!=null) { + if (sLevel==null) { + level=DEFAULT.maskOf(); + } else { level=Level.valueOf(sLevel).maskOf(); } } @@ -306,6 +308,11 @@ public class PropAccess implements Access { if (o!=null) { if(o.getClass().isArray()) { first = write(first,sb,(Object[])o); + } else if(o instanceof Throwable) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + PrintStream ps = new PrintStream(baos); + ((Throwable)o).printStackTrace(ps); + sb.append(baos.toString()); } else { s=o.toString(); if (first) {