Howdy:
Right now GeoServer does not work well in web application containers (like JBoss) that manage logging for all of its web apps. See:
http://jira.codehaus.org/browse/GEOS-1671
I have tested a workaround with GeoServer 1.6.4b and a JBoss 4.0.3SP1 instance that is configured to manage logging with log4j. Essentially, I modify GeoServer's WEB-INF/web.xml to run a very simple context listener that prevents GeoServer from taking control of logging.
Under this environment, the usual logging settings (i.e., the ones exposed to users in the web-based UI and ultimately services.xml) will not be consulted.
To implement this work-around:
1. Download:
http://jira.codehaus.org/secure/attachment/34967/SuppressLoggingConfigurationContextListener.class
Source code is at:
http://jira.codehaus.org/secure/attachment/34968/SuppressLoggingConfigurationContextListener.java
2. Put SuppressLoggingConfigurationContextListener.class into WEB-INF/classes/org/geoserver/logging/
3. Modify WEB-INF/web.xml to add this class to the listener list:
<listener>
<listener-class >org.geoserver.logging.SuppressLoggingConfigurationContextListener</listener-class>
</listener>
This should go after GeoserverInitStartupListener and LoggingStartupContextListener.
4. Restart your application container.
See below for the GeoServer-relevant settings that I use in my JBoss conf/log4j.xml file -- these roughly mimic the values found in DEFAULT_LOGGING.properties.
Cheers,
Ryan
<!-- A time/date based rolling appender -->
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.home.dir}/log/${host.name}/server.log"/>
<param name="Append" value="false"/>
<!-- Rollover at midnight each day -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
</layout>
</appender>
<logger name="org.geotools" additivity="false">
<level value="WARN"/>
<appender-ref ref="geoserver-appender"/>
</logger>
<logger name="org.geotools.factory" additivity="false">
<level value="WARN"/>
<appender-ref ref="geoserver-appender"/>
</logger>
<logger name="org.geoserver" additivity="false">
<level value="INFO"/>
<appender-ref ref="geoserver-appender"/>
</logger>
<logger name="org.vfny.geoserver" additivity="false">
<level value="INFO"/>
<appender-ref ref="geoserver-appender"/>
</logger>
<logger name="org.vfny.geoserver.config.web.tiles.definition.MultipleDefinitionsFactory" additivity="false">
<level value="WARN"/>
<appender-ref ref="geoserver-appender"/>
</logger>
<logger name="org.vfny.geoserver.global" additivity="false">
<level value="INFO"/>
<appender-ref ref="geoserver-appender"/>
</logger>
<logger name="org.springframework" additivity="false">
<level value="WARN"/>
<appender-ref ref="geoserver-appender"/>
</logger>
<logger name="org.apache.struts" additivity="false">
<level value="WARN"/>
<appender-ref ref="geoserver-appender"/>
</logger>
<logger name="org.acegisecurity" additivity="false">
<level value="INFO"/>
<appender-ref ref="geoserver-appender"/>
</logger>