【问题标题】:Redirect Logs to a specific file based on class name JBoss AS 7.0.0根据类名 JBoss AS 7.0.0 将日志重定向到特定文件
【发布时间】:2016-08-16 11:10:43
【问题描述】:

我想根据特定的类名来分隔日志,比如类名是

    package com.task;

    public class MyService {
    /**
     * Logger.
     */
    private static final Logger LOGGER = Logger.getLogger(MyService.class);

然后所有的日志都应该被重定向到在 JBoss standalone.xml 文件中针对此类名称注册的文件,例如我已经这样做了

 <subsystem xmlns="urn:jboss:domain:logging:1.0">
        <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"/>
        </periodic-rotating-file-handler>

        <periodic-rotating-file-handler name="MY_LOG" autoflush="true">
            <level name="DEBUG"/>
            <formatter>
                <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
            <file relative-to="jboss.server.log.dir" path="my_log.log"/>
            <suffix value=".yyyy-MM-dd"/>
        </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="com.task.MyService">
            <level name="DEBUG"/>
            <handlers>
                <handler name="MY_LOG"/>
            </handlers>
        </logger>
        <root-logger>
            <level name="INFO"/>
            <handlers>
                <handler name="CONSOLE"/>
                <handler name="FILE"/>                    
            </handlers>
        </root-logger>
    </subsystem>

正在创建名为 my_log.log 的日志文件,但日志不会重定向到该文件,默认情况下它们仍会覆盖 server.log 文件。

我如何从这个 MyService.class 记录语句以仅写入 my_log.log 文件?

【问题讨论】:

    标签: java logging jboss log4j jboss7.x


    【解决方案1】:

    阿南德,

    需要检查的几件事:

    1. 您是否在 MyService 类中登录调试级别。根据配置,它只会记录调试语句。
    2. 尝试引入具有相同配置的 log4j.xml。

    谢谢, 阿伦

    【讨论】:

    • 是的,我只在记录时使用调试语句,如何引入 log4j.xml 将有所帮助,请详细说明,也不支持外部化配置,请参阅 [developer.jboss.org/thread/176231?tstart=0](请参阅此)
    【解决方案2】:

    我转移到更高版本的 Jboss 即。 7.1.1 解决了这个问题,但是在寻找解决另一个问题时我发现了一个工作 solution Here for Same 7.0.0 Version 引用线程的答案

    你需要明确告诉 JBoss 容器你的 web 应用程序需要 log4j。你可以通过添加以下行来做到这一点 进入 /META-INF/MANIFEST.MF

    依赖:org.apache.log4j

    依赖:org.apache.log4j

    感谢该主题的原始贡献者。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 2018-02-16
      • 2016-10-07
      • 2017-03-26
      • 1970-01-01
      • 2014-11-19
      相关资源
      最近更新 更多