diff options
Diffstat (limited to 'java')
-rw-r--r-- | java/CHANGES | 6 | ||||
-rw-r--r-- | java/src/Ice/PropertiesI.java | 7 | ||||
-rw-r--r-- | java/src/Ice/Util.java | 28 | ||||
-rw-r--r-- | java/src/IceInternal/Instance.java | 2 |
4 files changed, 38 insertions, 5 deletions
diff --git a/java/CHANGES b/java/CHANGES index 3920849a808..9dfcbf05699 100644 --- a/java/CHANGES +++ b/java/CHANGES @@ -1,6 +1,12 @@ Changes since version 3.1.1 --------------------------- +- Added a per-process logger and two methods to get/set the logger, + Ice.Util.getProcessLogger() and Ice.Util.setProcessLogger(). Get will + create a default process logger when called if set has not been called. + The process logger will also be used as the default logger for all + communicators that do not have a logger explicitly set. + - Added support to Ice.Application for shutdown hooks. See Ice.Application.setInterruptHook for details. diff --git a/java/src/Ice/PropertiesI.java b/java/src/Ice/PropertiesI.java index 3afe19d520c..bed28124d00 100644 --- a/java/src/Ice/PropertiesI.java +++ b/java/src/Ice/PropertiesI.java @@ -92,10 +92,9 @@ public final class PropertiesI extends LocalObjectImpl implements Properties setProperty(String key, String value) { // - // Check if the property is legal. (We write to System.err instead of using - // a logger because no logger may be established at the time the property - // is parsed.) + // Check if the property is legal. // + Logger logger = Ice.Util.getProcessLogger(); if(key == null || key.length() == 0) { return; @@ -126,7 +125,7 @@ public final class PropertiesI extends LocalObjectImpl implements Properties } if(!found) { - System.err.println("warning: unknown property: " + key); + logger.warning("unknown property: " + key); } } } diff --git a/java/src/Ice/Util.java b/java/src/Ice/Util.java index 586d5fb3162..df0254f0e07 100644 --- a/java/src/Ice/Util.java +++ b/java/src/Ice/Util.java @@ -382,5 +382,33 @@ public final class Util return new OutputStreamI(communicator); } + public static Logger + getProcessLogger() + { + synchronized(_processLoggerMutex) + { + if(_processLogger == null) + { + // + // TODO: Would be nice to be able to use process name as prefix by default. + // + _processLogger = new LoggerI(""); + } + + return _processLogger; + } + } + + public static void + setProcessLogger(Logger logger) + { + synchronized(_processLoggerMutex) + { + _processLogger = logger; + } + } + private static String _localAddress = null; + private static java.lang.Object _processLoggerMutex = new java.lang.Object(); + private static Logger _processLogger = null; } diff --git a/java/src/IceInternal/Instance.java b/java/src/IceInternal/Instance.java index a2a82c6d21b..ece93c9b020 100644 --- a/java/src/IceInternal/Instance.java +++ b/java/src/IceInternal/Instance.java @@ -368,7 +368,7 @@ public final class Instance } else { - _initData.logger = new Ice.LoggerI(_initData.properties.getProperty("Ice.ProgramName")); + _initData.logger = Ice.Util.getProcessLogger(); } } |