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: [email protected]
For additional commands, e-mail: [email protected]