I’ve added another log file and I was wondering how I access it from within Java code. I can’t find anything on it.
I want a separate log file for user actions.
Here is my standalone.xml, for JBOSS AS 7.1.1.
<subsystem xmlns="urn:jboss:domain:logging:1.1">
<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>
<size-rotating-file-handler name="USER" autoflush="false">
<level name="ALL"/>
<file relative-to="jboss.server.log.dir" path="user.log"/>
<rotate-size value="50m"/>
<append value="true"/>
</size-rotating-file-handler>
<logger category="user" use-parent-handlers="false">
<level name="ALL"/>
<handlers>
<handler name="USER"/>
</handlers>
</logger>
<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>
<root-logger>
<level name="INFO"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILE"/>
</handlers>
</root-logger>
</subsystem>
I’m trying to write to it like so:
import org.jboss.logging.Logger;
Logger logger = Logger.getLogger("USER");
logger.info("user did something");
It creates the user.log on startup but still writes to server.log.
Your categories don’t match. In the configuration you define the logger category as
user(lowercase). In your code example you define the category asUSER(uppercase). Change the categories to match and it will work.