Sometimes we need to separate the log of each application running on the same server into different files.
On Jboss AS 7 or a newer version you can achieve that very easy.
You have only to modify the logging subsystem section inside the standalone.xml or domain.xml file.
First we define a file handler for the app.
<periodic-rotating-file-handler name="FILE_APP"> <formatter> <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> </formatter> <file relative-to="jboss.server.log.dir" path="applog.log"/> <suffix value=".yyyy-MM-dd"/> <append value="true"/> </periodic-rotating-file-handler>
Then define all the packages names you want to log to the file, like this
<logger category="com.MY-APP-PACKAGE" use-parent-handlers="false"> <level name="INFO"/> <handlers> <handler name="FILE_APP"/> </handlers> </logger>
If use-parent-handlers=»true» the log will be on both files, server.log and applog.log
Finally add the handler to the root-logger.
<root-logger> <level name="INFO"/> <handlers> <handler name="CONSOLE"/> <handler name="FILE"/> <handler name="FILE_APP"/> </handlers> </root-logger>
The complete logging subsystem section
<subsystem xmlns="urn:jboss:domain:logging:1.2"> <console-handler name="CONSOLE"> <level name="INFO"/> <formatter> <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> </formatter> </console-handler> <periodic-rotating-file-handler name="FILE"> <formatter> <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> </formatter> <file relative-to="jboss.server.log.dir" path="server.log"/> <suffix value=".yyyy-MM-dd"/> <append value="true"/> </periodic-rotating-file-handler> <periodic-rotating-file-handler name="FILE_APP"> <formatter> <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> </formatter> <file relative-to="jboss.server.log.dir" path="applog.log"/> <suffix value=".yyyy-MM-dd"/> <append value="true"/> </periodic-rotating-file-handler> <logger category="com.arjuna"> <level name="WARN"/> </logger> <logger category="org.apache.tomcat.util.modeler"> <level name="WARN"/> </logger> <logger category="sun.rmi"> <level name="WARN"/> </logger> <logger category="jacorb"> <level name="WARN"/> </logger> <logger category="jacorb.config"> <level name="ERROR"/> </logger> <logger category="com.MY-APP-PACKAGE" use-parent-handlers="false"> <level name="INFO"/> <handlers> <handler name="FILE_APP"/> </handlers> </logger> <root-logger> <level name="INFO"/> <handlers> <handler name="CONSOLE"/> <handler name="FILE"/> <handler name="FILE_APP"/> </handlers> </root-logger> </subsystem>