Migration from AS 5: Logging
andreypolozov Jun 12, 2013 11:27 AM(Spin off from Per deployment logging configuration in JBoss AS 7.1.3)
So, I'm trying to migrate our system from AS 5.2 to EAP 6.1 (AS 7.2.0), or EAP 6.0.1 (AS 7.1.3).
We have several WAR files deployed separately (no EAR). All web apps use java.utill.logging.Logger for logging. The logger name tied to the full class name:
private static final Logger logger = Logger.getLogger(TheClass.class.getName());
Applications share some common classes.
We need each application to log all messages (from app-specific classes, common and system classes) to a separate file.
In AS 5 we do this by having a record like this in conf/jboss-log4j.xml for each app:
<appender name="SomeAppLog" class="org.apache.log4j.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"></errorHandler>
<param name="Append" value="true"/>
<param name="File" value="${jboss.server.log.dir}/some-app.log"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<param name="Threshold" value="${log4j.threshold.default}" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
</layout>
<filter class="org.jboss.logging.filter.TCLMCFilter">
<param name="AcceptOnMatch" value="true"/>
<param name="DeployURL" value="some-app"/>
</filter>
<filter class="org.apache.log4j.varia.DenyAllFilter"></filter>
</appender>
Then we add those appenders to <root>, filter out deployments starting with "some-":
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
...
<filter class="org.jboss.logging.filter.TCLMCFilter">
<param name="AcceptOnMatch" value="false"/>
<param name="DeployURL" value="some-"/>
</filter>
That's the current situation.
Now, according to https://issues.jboss.org/browse/AS7-514 (link from comments), we're supposed to use per-deployment logging config:
I tried following that recommendation. Here is what I'm getting so far.
First - I've found some sample of logging.properties file:
loggers=com.mycompany
logger.level=FINEST
logger.com.mycompany.level=FINEST
handlers=FILE
handler.FILE=org.jboss.logmanager.handlers.SizeRotatingFileHandler
handler.FILE.level=FINEST
handler.FILE.properties=autoFlush,fileName,rotateSize,maxBackupIndex
handler.FILE.autoFlush=true
handler.FILE.fileName=${jboss.server.log.dir}/some-app.log
handler.FILE.rotateSize=500
handler.FILE.maxBackupIndex=5
handler.FILE.formatter=PATTERN
formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter
formatter.PATTERN.properties=pattern
formatter.PATTERN.pattern=%d{HH:mm:ss,SSS} %-5p [%c] %s%E%n
First of all - adding putting that file to WEB-INF or META-INF, as the documentation suggests, doesn't seem to have any affect.
It looks like it gets picked up only from the classpath (WEB-INF/classes/).
With that in right place the log does get created, but nothing gets logged there...
I'll try to experiment with Log4j next...
I will greatly appreciate any thoughts and ideas regarding this migration.