【问题标题】:how to exclude logger categories from server.log on JBoss AS 7.0.2.Final如何从 JBoss AS 7.0.2.Final 上的 server.log 中排除记录器类别
【发布时间】:2012-09-04 23:00:23
【问题描述】:

我正在使用 JBoss AS 7.0.2.Final 并且没有机会更改它。

我尝试配置standalone.xml 来为不同的类别创建不同的日志文件。我的问题是:每个记录器的输出都正确附加在指定文件上,但也写入 server.log 文件。

这是我的整个日志子系统配置:

<subsystem xmlns="urn:jboss:domain:logging:1.1">
    <console-handler name="CONSOLE" autoflush="true">
        <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" autoflush="true">
        <level name="INFO"/>
        <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="REQUEST" autoflush="true">
        <level name="INFO"/>
        <formatter>
            <pattern-formatter pattern="%m%n"/>
        </formatter>
        <file path="/Logs/requests.log"/>
        <suffix value=".yyyy-MM-dd-HH"/>
        <append value="true"/>
    </periodic-rotating-file-handler>
    <periodic-rotating-file-handler name="ALARMS" autoflush="true">
        <level name="INFO"/>
        <formatter>
            <pattern-formatter pattern="%m%n"/>
        </formatter>
        <file path="/Logs/alarms.log"/>
        <suffix value=".yyyy-MM-dd-HH"/>
        <append value="true"/>
    </periodic-rotating-file-handler>
    <logger category="com.maucho.alarm" use-parent-handlers="false">
        <level name="INFO"/>
        <handlers>
            <handler name="ALARMS"/>
        </handlers>
    </logger>
    <logger category="com.maucho.request" use-parent-handlers="false">
        <level name="INFO"/>
        <handlers>
            <handler name="REQUEST"/>
        </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="com.hp.autopassj">
        <level name="WARN"/>
    </logger>
    <logger category="org.jboss.as.server.deployment">
        <level name="ERROR"/>
    </logger>
    <root-logger>
        <level name="INFO"/>
        <handlers>
            <handler name="CONSOLE"/>
            <handler name="FILE"/>
        </handlers>
    </root-logger>
</subsystem>

当启动 AS 时,standalone.xml 文件被覆盖,并将没有属性 use-parent-handlers="false" 的记录器标签替换为空,将行为设置为其默认值,use-parent-handlers="true":

<subsystem xmlns="urn:jboss:domain:logging:1.1">
    <console-handler name="CONSOLE" autoflush="true">
        <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" autoflush="true">
        <level name="INFO"/>
        <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="REQUEST" autoflush="true">
        <level name="INFO"/>
        <formatter>
            <pattern-formatter pattern="%m%n"/>
        </formatter>
        <file path="/Logs/requests.log"/>
        <suffix value=".yyyy-MM-dd-HH"/>
        <append value="true"/>
    </periodic-rotating-file-handler>
    <periodic-rotating-file-handler name="ALARMS" autoflush="true">
        <level name="INFO"/>
        <formatter>
            <pattern-formatter pattern="%m%n"/>
        </formatter>
        <file path="/Logs/alarms.log"/>
        <suffix value=".yyyy-MM-dd-HH"/>
        <append value="true"/>
    </periodic-rotating-file-handler>
    <logger category="com.maucho.alarm">
        <level name="INFO"/>
        <handlers>
            <handler name="ALARMS"/>
        </handlers>
    </logger>
    <logger category="com.maucho.request">
        <level name="INFO"/>
        <handlers>
            <handler name="REQUEST"/>
        </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="com.hp.autopassj">
        <level name="WARN"/>
    </logger>
    <logger category="org.jboss.as.server.deployment">
        <level name="ERROR"/>
    </logger>
    <root-logger>
        <level name="INFO"/>
        <handlers>
            <handler name="CONSOLE"/>
            <handler name="FILE"/>
        </handlers>
    </root-logger>
</subsystem>

文档很差,说我只需要把参数use-parent-handlers="false" 就行了。

此外,我还使用 org.apache.commons.logging.LogFactory 将代码 org.apache.log4j.Logger 更改为 org.apache.commons.logging.Log 并得到相同的结果,在两个文件中记录输出( /Logs/requests.log 或 /Logs/alarms.log AND server.log)。

我的参考资料: https://community.jboss.org/message/731527 http://commons.apache.org/logging/guide.html

【问题讨论】:

  • 设置use-parent-handler=false 应该可以解决问题。您能否将您不希望写入 server.log 的一小部分输出粘贴到 server.log 中?
  • 这是我在日志文件上得到的日志,也写在服务器日志上:[user@hostname ~]$ tail -f /Logs/alarms.log 13:33:43 11092012|Remote host|fatal|5000|Error al conectar al servidor remoto Connection denied|192.168.100.45:8080
  • 我会用 vi 打开standalone.xml,我看到记录器的标签被这样覆盖:
  • 当你更改standalone.xml中的值时,服务器是停止还是运行?
  • 当我更改standalone.xml时服务器停止

标签: java logging jboss7.x


【解决方案1】:

这是一个非常古老的线程,但以防万一有人正在寻找解决此问题的方法。属性名称中有错字,缺少“s”。这是设置以使其正常工作的属性- 使用父处理程序**s**=false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-03
    • 2015-10-30
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 2015-05-25
    • 2012-05-08
    • 1970-01-01
    相关资源
    最近更新 更多