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

Reply via email to