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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org