--- /dev/null
+handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, 5host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+
+.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+
+############################################################
+# Handler specific properties.
+# Describes specific configuration info for Handlers.
+############################################################
+
+1catalina.org.apache.juli.FileHandler.level = FINE
+1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+1catalina.org.apache.juli.FileHandler.prefix = catalina.
+
+2localhost.org.apache.juli.FileHandler.level = FINE
+2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+2localhost.org.apache.juli.FileHandler.prefix = localhost.
+
+3manager.org.apache.juli.FileHandler.level = FINE
+3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+3manager.org.apache.juli.FileHandler.prefix = manager.
+
+4admin.org.apache.juli.FileHandler.level = FINE
+4admin.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+4admin.org.apache.juli.FileHandler.prefix = admin.
+
+5host-manager.org.apache.juli.FileHandler.level = FINE
+5host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+5host-manager.org.apache.juli.FileHandler.prefix = host-manager.
+
+java.util.logging.ConsoleHandler.level = FINE
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+
+
+############################################################
+# Facility specific properties.
+# Provides extra control for each logger.
+############################################################
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/admin].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/admin].handlers = 4admin.org.apache.juli.FileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 5host-manager.org.apache.juli.FileHandler
+
+# For example, set the com.xyz.foo logger to only log SEVERE
+# messages:
+#org.apache.catalina.startup.ContextConfig.level = FINE
+#org.apache.catalina.startup.HostConfig.level = FINE
+#org.apache.catalina.session.ManagerBase.level = FINE
+#org.apache.catalina.core.AprLifecycleListener.level=FINE
<Listener className="org.apache.catalina.core.AprLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
- <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
+ <!--<Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>-->
<!-- Global JNDI resources -->
<GlobalNamingResources>
/**\r
* The ServletContext implementation associated with this Context.\r
*/\r
- private transient ApplicationContext context = null;\r
+ protected transient ApplicationContext context = null;\r
\r
\r
/**\r
\r
\r
/**\r
+ * The original document root for this web application.\r
+ */\r
+ private String originalDocBase = null;\r
+ \r
+ \r
+ /**\r
* The privileged flag for this web application.\r
*/\r
private boolean privileged = false;\r
\r
\r
/**\r
+ * Return the original document root for this Context. This can be an absolute\r
+ * pathname, a relative pathname, or a URL.\r
+ * Is only set as deployment has change docRoot!\r
+ */\r
+ public String getOriginalDocBase() {\r
+\r
+ return (this.originalDocBase);\r
+\r
+ }\r
+\r
+ /**\r
+ * Set the original document root for this Context. This can be an absolute\r
+ * pathname, a relative pathname, or a URL.\r
+ *\r
+ * @param docBase The orginal document root\r
+ */\r
+ public void setOriginalDocBase(String docBase) {\r
+\r
+ this.originalDocBase = docBase;\r
+ }\r
+ \r
+ /**\r
* Return the privileged flag for this web application.\r
*/\r
public boolean getPrivileged() {\r
/**\r
* Get base path.\r
*/\r
- private String getBasePath() {\r
+ protected String getBasePath() {\r
String docBase = null;\r
Container container = this;\r
while (container != null) {\r
/**\r
* Get app base.\r
*/\r
- private String getAppBase() {\r
+ protected String getAppBase() {\r
String appBase = null;\r
Container container = this;\r
while (container != null) {\r
description="Name of the object"\r
type="java.lang.String"/>\r
\r
+ <attribute name="originalDocBase"\r
+ description="The original document root for this web application"\r
+ type="java.lang.String"/>\r
+\r
<attribute name="override"\r
description="The DefaultContext override flag for this web application"\r
type="boolean"/>\r
docBase = file.getCanonicalPath();\r
}\r
file = new File(docBase);\r
-\r
+ String origDocBase = docBase;\r
+ \r
if (docBase.toLowerCase().endsWith(".war") && !file.isDirectory() && unpackWARs) {\r
URL war = new URL("jar:" + (new File(docBase)).toURL() + "!/");\r
String contextPath = context.getPath();\r
docBase = ExpandWar.expand(host, war, contextPath);\r
file = new File(docBase);\r
docBase = file.getCanonicalPath();\r
+ if (context instanceof StandardContext) {\r
+ ((StandardContext) context).setOriginalDocBase(origDocBase);\r
+ }\r
} else {\r
File docDir = new File(docBase);\r
if (!docDir.exists()) {\r
docBase = warFile.getCanonicalPath();\r
}\r
}\r
+ if (context instanceof StandardContext) {\r
+ ((StandardContext) context).setOriginalDocBase(origDocBase);\r
+ }\r
}\r
}\r
\r