diff --git a/slf4j-simple/src/main/java/org/slf4j/impl/SimpleLogger.java b/slf4j-simple/src/main/java/org/slf4j/impl/SimpleLogger.java index c5540f3c..87f525c2 100644 --- a/slf4j-simple/src/main/java/org/slf4j/impl/SimpleLogger.java +++ b/slf4j-simple/src/main/java/org/slf4j/impl/SimpleLogger.java @@ -48,13 +48,14 @@ import org.slf4j.spi.LocationAwareLogger; * The following system properties are supported to configure the behavior of this logger:
*org.slf4j.simpleLogger.defaultLog -
- * Default logging detail level for all instances of SimpleLogger.
+ * Default logging level for all instances of SimpleLogger.
* Must be one of ("trace", "debug", "info", "warn", or "error").
* If not specified, defaults to "info". org.slf4j.simpleLogger.log.xxxxx -
* Logging detail level for a SimpleLogger instance named "xxxxx".
* Must be one of ("trace", "debug", "info", "warn", or "error").
- * If not specified, the default logging detail level is used.org.slf4j.simpleLogger.showDateTime -
* Set to true if you want the current date and time
* to be included in output messages. Default is trueSimpleLogger start with this prefix
*/
@@ -140,13 +150,12 @@ public class SimpleLogger extends MarkerIgnoringBase {
public static final String DATE_TIME_FORMAT_KEY = SYSTEM_PREFIX + "dateTimeFormat";
public static final String SHOW_DATE_TIME_KEY = SYSTEM_PREFIX + "showDateTime";
public static final String LOG_FILE_KEY = SYSTEM_PREFIX + "logFile";
-
public static final String LEVEL_IN_BRACKETS_KEY = SYSTEM_PREFIX + "levelInBrackets";
+
public static final String LOG_KEY_PREFIX = SYSTEM_PREFIX + "log.";
- private static int DEFAULT_LOG_LEVEL = LOG_LEVEL_INFO;
private static PrintStream TARGET_STREAM = null;
private static String getStringProperty(String name) {
@@ -173,10 +182,10 @@ public class SimpleLogger extends MarkerIgnoringBase {
// Initialize class attributes.
// Load properties file, if found.
// Override with system properties.
- static {
+ static void init() {
+ INITIALIZED = true;
loadProperties();
-
String defaultLogLevelString = getStringProperty(DEFAULT_LOG_KEY, null);
if (defaultLogLevelString != null)
DEFAULT_LOG_LEVEL = stringToLevel(defaultLogLevelString);
@@ -188,7 +197,6 @@ public class SimpleLogger extends MarkerIgnoringBase {
DATE_TIME_FORMAT_STR = getStringProperty(DATE_TIME_FORMAT_KEY, DATE_TIME_FORMAT_STR);
LEVEL_IN_BRACKETS = getBooleanProperty(LEVEL_IN_BRACKETS_KEY, LEVEL_IN_BRACKETS);
-
LOG_FILE = getStringProperty(LOG_FILE_KEY, LOG_FILE);
TARGET_STREAM = computeTargetStream(LOG_FILE);
@@ -201,6 +209,8 @@ public class SimpleLogger extends MarkerIgnoringBase {
}
}
+
+
private static PrintStream computeTargetStream(String logFile) {
if ("System.err".equalsIgnoreCase(logFile))
return System.err;
@@ -258,6 +268,9 @@ public class SimpleLogger extends MarkerIgnoringBase {
* SimpleLogger instances.
*/
SimpleLogger(String name) {
+ if(!INITIALIZED) {
+ init();
+ }
this.name = name;
String levelString = recursivelyComputeLevelString();