You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kk...@apache.org on 2015/01/23 10:59:43 UTC

svn commit: r1654159 - in /tomcat/trunk: java/org/apache/catalina/startup/LocalStrings.properties java/org/apache/catalina/startup/VersionLoggerListener.java webapps/docs/config/listeners.xml

Author: kkolinko
Date: Fri Jan 23 09:59:43 2015
New Revision: 1654159

URL: http://svn.apache.org/r1654159
Log:
Allow to log the system properties with VersionLoggerListener. This feature is off by default.

Implementation note: this shall work even if keys/values in System properties are not String.
(A recent notable issue caused by non-String values: https://bugs.eclipse.org/bugs/show_bug.cgi?id=445122 )

Modified:
    tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
    tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java
    tomcat/trunk/webapps/docs/config/listeners.xml

Modified: tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties?rev=1654159&r1=1654158&r2=1654159&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties Fri Jan 23 09:59:43 2015
@@ -132,6 +132,7 @@ versionLoggerListener.vm.version
 versionLoggerListener.vm.vendor                =JVM Vendor:            {0}
 versionLoggerListener.catalina.base            =CATALINA_BASE:         {0}
 versionLoggerListener.catalina.home            =CATALINA_HOME:         {0}
-versionLoggerListener.env                      =Environment variable:  {0} = {1}
 versionLoggerListener.arg                      =Command line argument: {0}
+versionLoggerListener.env                      =Environment variable:  {0} = {1}
+versionLoggerListener.prop                     =System property:       {0} = {1}
 webAnnotationSet.invalidInjection=Invalid method resource injection annotation.

Modified: tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java?rev=1654159&r1=1654158&r2=1654159&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java Fri Jan 23 09:59:43 2015
@@ -19,8 +19,8 @@ package org.apache.catalina.startup;
 import java.lang.management.ManagementFactory;
 import java.util.List;
 import java.util.Map;
-import java.util.SortedSet;
-import java.util.TreeSet;
+import java.util.SortedMap;
+import java.util.TreeMap;
 
 import org.apache.catalina.Lifecycle;
 import org.apache.catalina.LifecycleEvent;
@@ -44,6 +44,7 @@ public class VersionLoggerListener imple
 
     private boolean logArgs = true;
     private boolean logEnv = false;
+    private boolean logProps = false;
 
 
     public boolean getLogArgs() {
@@ -66,6 +67,16 @@ public class VersionLoggerListener imple
     }
 
 
+    public boolean getLogProps() {
+        return logProps;
+    }
+
+
+    public void setLogProps(boolean logProps) {
+        this.logProps = logProps;
+    }
+
+
     @Override
     public void lifecycleEvent(LifecycleEvent event) {
         if (Lifecycle.BEFORE_INIT_EVENT.equals(event.getType())) {
@@ -106,10 +117,19 @@ public class VersionLoggerListener imple
         }
 
         if (logEnv) {
-            Map<String,String> envs = System.getenv();
-            SortedSet<String> keys = new TreeSet<>(envs.keySet());
-            for (String key : keys) {
-                log.info(sm.getString("versionLoggerListener.env", key, envs.get(key)));
+            SortedMap<String, String> sortedMap = new TreeMap<>(System.getenv());
+            for (Map.Entry<String, String> e : sortedMap.entrySet()) {
+                log.info(sm.getString("versionLoggerListener.env", e.getKey(), e.getValue()));
+            }
+        }
+
+        if (logProps) {
+            SortedMap<String, String> sortedMap = new TreeMap<>();
+            for (Map.Entry<Object, Object> e : System.getProperties().entrySet()) {
+                sortedMap.put(String.valueOf(e.getKey()), String.valueOf(e.getValue()));
+            }
+            for (Map.Entry<String, String> e : sortedMap.entrySet()) {
+                log.info(sm.getString("versionLoggerListener.prop", e.getKey(), e.getValue()));
             }
         }
     }

Modified: tomcat/trunk/webapps/docs/config/listeners.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/listeners.xml?rev=1654159&r1=1654158&r2=1654159&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/config/listeners.xml (original)
+++ tomcat/trunk/webapps/docs/config/listeners.xml Fri Jan 23 09:59:43 2015
@@ -446,6 +446,12 @@
         <code>false</code> will be used.</p>
       </attribute>
 
+      <attribute name="logProps" required="false">
+        <p>If <code>true</code>, the current Java system properties will be
+        logged. If not specified, the default value of
+        <code>false</code> will be used.</p>
+      </attribute>
+
     </attributes>
 
   </subsection>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org