Author: violetagg Date: Mon Oct 20 14:24:58 2014 New Revision: 1633165 URL: http://svn.apache.org/r1633165 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=47919 Merged revisions 1630110, 1630407 from tomcat/trunk: - Extend the information logged when Tomcat starts to optionally include (enabled by default) the values of key environment variables. - Log all environment variables but disable this by default - Log all command line arguments passed to java.exe by default but include an option to exclude them
Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/LocalStrings.properties tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml tomcat/tc7.0.x/trunk/webapps/docs/config/listeners.xml Propchange: tomcat/tc7.0.x/trunk/ ------------------------------------------------------------------------------ Merged /tomcat/trunk:r1630110,1630407 Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/LocalStrings.properties?rev=1633165&r1=1633164&r2=1633165&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/LocalStrings.properties (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/LocalStrings.properties Mon Oct 20 14:24:58 2014 @@ -140,14 +140,19 @@ userConfig.error=Error deploying web app userConfig.start=UserConfig: Processing START userConfig.stop=UserConfig: Processing STOP userConfig.deploy.threaded.error=Error waiting for multi-thread deployment of user directories to complete -versionLoggerListener.serverInfo.server.version=Server version: {0} -versionLoggerListener.serverInfo.server.built =Server built: {0} -versionLoggerListener.serverInfo.server.number =Server number: {0} -versionLoggerListener.serverInfo.os.name =OS Name: {0} -versionLoggerListener.serverInfo.os.version =OS Version: {0} -versionLoggerListener.serverInfo.os.arch =Architecture: {0} -versionLoggerListener.serverInfo.vm.version =JVM Version: {0} -versionLoggerListener.serverInfo.vm.vendor =JVM Vendor: {0} +versionLoggerListener.serverInfo.server.version=Server version: {0} +versionLoggerListener.serverInfo.server.built =Server built: {0} +versionLoggerListener.serverInfo.server.number =Server number: {0} +versionLoggerListener.os.name =OS Name: {0} +versionLoggerListener.os.version =OS Version: {0} +versionLoggerListener.os.arch =Architecture: {0} +versionLoggerListener.java.home =JAVA_HOME: {0} +versionLoggerListener.vm.version =JVM Version: {0} +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} webAnnotationSet.invalidInjection=Invalid method resource injection annotation. webRuleSet.absoluteOrdering=<absolute-ordering> element not valid in web-fragment.xml and will be ignored webRuleSet.absoluteOrderingCount=<absolute-ordering> element is limited to 1 occurrence Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java?rev=1633165&r1=1633164&r2=1633165&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java Mon Oct 20 14:24:58 2014 @@ -16,6 +16,12 @@ */ 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 org.apache.catalina.Lifecycle; import org.apache.catalina.LifecycleEvent; import org.apache.catalina.LifecycleListener; @@ -36,6 +42,29 @@ public class VersionLoggerListener imple */ protected static final StringManager sm = StringManager.getManager(Constants.Package); + private boolean logArgs = true; + private boolean logEnv = false; + + + public boolean getLogArgs() { + return logArgs; + } + + + public void setLogArgs(boolean logArgs) { + this.logArgs = logArgs; + } + + + public boolean getLogEnv() { + return logEnv; + } + + + public void setLogEnv(boolean logEnv) { + this.logEnv = logEnv; + } + @Override public void lifecycleEvent(LifecycleEvent event) { @@ -52,15 +81,36 @@ public class VersionLoggerListener imple ServerInfo.getServerBuilt())); log.info(sm.getString("versionLoggerListener.serverInfo.server.number", ServerInfo.getServerNumber())); - log.info(sm.getString("versionLoggerListener.serverInfo.os.name", + log.info(sm.getString("versionLoggerListener.os.name", System.getProperty("os.name"))); - log.info(sm.getString("versionLoggerListener.serverInfo.os.version", + log.info(sm.getString("versionLoggerListener.os.version", System.getProperty("os.version"))); - log.info(sm.getString("versionLoggerListener.serverInfo.os.arch", + log.info(sm.getString("versionLoggerListener.os.arch", System.getProperty("os.arch"))); - log.info(sm.getString("versionLoggerListener.serverInfo.vm.version", + log.info(sm.getString("versionLoggerListener.java.home", + System.getProperty("java.home"))); + log.info(sm.getString("versionLoggerListener.vm.version", System.getProperty("java.runtime.version"))); - log.info(sm.getString("versionLoggerListener.serverInfo.vm.vendor", + log.info(sm.getString("versionLoggerListener.vm.vendor", System.getProperty("java.vm.vendor"))); + log.info(sm.getString("versionLoggerListener.catalina.base", + System.getProperty("catalina.base"))); + log.info(sm.getString("versionLoggerListener.catalina.home", + System.getProperty("catalina.home"))); + + if (logArgs) { + List<String> args = ManagementFactory.getRuntimeMXBean().getInputArguments(); + for (String arg : args) { + log.info(sm.getString("versionLoggerListener.arg", arg)); + } + } + + if (logEnv) { + Map<String,String> envs = System.getenv(); + SortedSet<String> keys = new TreeSet<String>(envs.keySet()); + for (String key : keys) { + log.info(sm.getString("versionLoggerListener.env", key, envs.get(key))); + } + } } } Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1633165&r1=1633164&r2=1633165&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Mon Oct 20 14:24:58 2014 @@ -59,6 +59,11 @@ <subsection name="Catalina"> <changelog> <add> + <bug>47919</bug>: Extend the information logged when Tomcat starts to + optionally include (disabled by default) the values of key environment + variables. (markt) + </add> + <add> <bug>56401</bug>: Log version information when Tomcat starts. (markt/kkolinko) </add> Modified: tomcat/tc7.0.x/trunk/webapps/docs/config/listeners.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/config/listeners.xml?rev=1633165&r1=1633164&r2=1633165&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/config/listeners.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/config/listeners.xml Mon Oct 20 14:24:58 2014 @@ -411,8 +411,24 @@ <p>This listener must only be nested within <a href="server.html">Server</a> elements and should be the first listener defined.</p> - <p>No additional attributes are supported by the <strong>Version Logging - Lifecycle Listener</strong>.</p> + <p>The following additional attributes are supported by the <strong>Version + Logging Lifecycle Listener</strong>:</p> + + <attributes> + + <attribute name="logArgs" required="false"> + <p>If <code>true</code>, the command line arguments passed to Java when + Tomcat started will be logged. If not specified, the default value of + <code>true</code> will be used.</p> + </attribute> + + <attribute name="logEnv" required="false"> + <p>If <code>true</code>, the current environment variables when Tomcat + starts 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