Author: markt Date: Thu Oct 9 12:36:28 2014 New Revision: 1630407 URL: http://svn.apache.org/r1630407 Log: Improve fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=47919 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/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=1630407&r1=1630406&r2=1630407&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties Thu Oct 9 12:36:28 2014 @@ -121,22 +121,17 @@ 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.env.catalina.base =CATALINA_BASE: {0} -versionLoggerListener.env.catalina.home =CATALINA_HOME: {0} -versionLoggerListener.env.catalina.tmpdir =CATALINA_TMPDIR: {0} -versionLoggerListener.env.java.home =JAVA_HOME: {0} -versionLoggerListener.env.jre.home =JRE_HOME: {0} -versionLoggerListener.env.runjava =_RUNJAVA: {0} -versionLoggerListener.env.java.opts =JAVA_OPTS: {0} -versionLoggerListener.env.catalina.opts =CATALINA_OPTS: {0} -versionLoggerListener.env.java.endorsed =JAVA_ENDORSED_DIRS: {0} -versionLoggerListener.env.classpath =CLASSPATH {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. 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=1630407&r1=1630406&r2=1630407&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java Thu Oct 9 12:36:28 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,8 +42,18 @@ public class VersionLoggerListener imple */ protected static final StringManager sm = StringManager.getManager(Constants.Package); + private boolean logArgs = true; + private boolean logEnv = false; + - private boolean logEnv = true; + public boolean getLogArgs() { + return logArgs; + } + + + public void setLogArgs(boolean logArgs) { + this.logArgs = logArgs; + } public boolean getLogEnv() { @@ -65,38 +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) { - log.info(sm.getString("versionLoggerListener.env.catalina.base", - System.getenv("CATALINA_BASE"))); - log.info(sm.getString("versionLoggerListener.env.catalina.home", - System.getenv("CATALINA_HOME"))); - log.info(sm.getString("versionLoggerListener.env.catalina.tmpdir", - System.getenv("CATALINA_TMPDIR"))); - log.info(sm.getString("versionLoggerListener.env.java.home", - System.getenv("JAVA_HOME"))); - log.info(sm.getString("versionLoggerListener.env.jre.home", - System.getenv("JRE_HOME"))); - log.info(sm.getString("versionLoggerListener.env.runjava", - System.getenv("_RUNJAVA"))); - log.info(sm.getString("versionLoggerListener.env.java.opts", - System.getenv("JAVA_OPTS"))); - log.info(sm.getString("versionLoggerListener.env.catalina.opts", - System.getenv("CATALINA_OPTS"))); - log.info(sm.getString("versionLoggerListener.env.java.endorsed", - System.getenv("JAVA_ENDORSED_DIRS"))); - log.info(sm.getString("versionLoggerListener.env.classpath", - System.getenv("CLASSPATH"))); + 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))); + } } } } Modified: tomcat/trunk/webapps/docs/config/listeners.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/listeners.xml?rev=1630407&r1=1630406&r2=1630407&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/config/listeners.xml (original) +++ tomcat/trunk/webapps/docs/config/listeners.xml Thu Oct 9 12:36:28 2014 @@ -400,12 +400,16 @@ <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>, a number of environment variables will be - logged after the version information including - <code>CATALINA_BASE</code>, <code>CATALINA_HOME</code> and - <code>JAVA_HOME</code>. If not specified, the default value of - <code>true</code> is used.</p> + <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> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org