1

我添加了另一个日志文件,我想知道如何从 Java 代码中访问它。我在上面找不到任何东西。

我想要一个用于用户操作的单独日志文件。

这是我的 Standalone.xml,适用于 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>

我正在尝试这样写:

import org.jboss.logging.Logger;
Logger logger = Logger.getLogger("USER");
logger.info("user did something");

它会在启动时创建 user.log,但仍会写入 server.log。

4

1 回答 1

0

您的类别不匹配。在配置中,您将记录器类别定义为user(小写)。在您的代码示例中,您将类别定义为USER(大写)。更改类别以匹配,它将起作用。

<subsystem xmlns="urn:jboss:domain:logging:1.1">
    ...
    <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>
    ...
</subsystem>
于 2012-08-23T16:14:13.690 回答