Wildfly日志配置文件设置(logger.debug(“test”))

时间:2017-11-21 15:04:22

标签: java logging wildfly jboss-logging jboss-cli

我想为我的应用程序的日志创建一个配置文件

我需要使用logger.debug()但是如果我放入standalone.xml文件DEBUG我会收到太多行

<level name="INFO"/><level name="DEBUG"/>

.....................
    <subsystem xmlns="urn:jboss:domain:logging:3.0">
        <console-handler name="CONSOLE">
            <level name="DEBUG"/>
            <formatter>
                <named-formatter name="COLOR-PATTERN"/>
            </formatter>
        </console-handler>
        <periodic-rotating-file-handler name="FILE" autoflush="true">
            <formatter>
                <named-formatter name="PATTERN"/>
            </formatter>
            <file relative-to="jboss.server.log.dir" path="server.log"/>
            <suffix value=".yyyy-MM-dd"/>
            <append value="true"/>
        </periodic-rotating-file-handler>
        <logger category="com.arjuna">
            <level name="WARN"/>
        </logger>
        <logger category="org.jboss.as.config">
            <level name="DEBUG"/>
        </logger>
        <logger category="sun.rmi">
            <level name="WARN"/>
        </logger>
        <root-logger>
            <level name="DEBUG"/>
            <handlers>
                <handler name="CONSOLE"/>
                <handler name="FILE"/>
            </handlers>
        </root-logger>
        <formatter name="PATTERN">
            <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
        </formatter>
        <formatter name="COLOR-PATTERN">
            <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
        </formatter>
    </subsystem>
......................

我可以创建一个只启用我的应用程序的调试日志记录的配置文件吗?

我创建了自己的个人资料并添加了我的MANIFEST.MF,但它不起作用

<logging-profiles>
   <logging-profile name="accounts-app-profile">
       <console-handler name="CONSOLE">
           <level name="DEBUG"/>
           <formatter>
              <named-formatter name="COLOR-PATTERN"/>
            </formatter>
       </console-handler>
       <file-handler name="ejb-trace-file">
           <level name="DEBUG"/>
           <file relative-to="jboss.server.log.dir" path="ejb-trace.log"/>
       </file-handler>
       <logger category="com.company.accounts.ejbs">
            <level name="DEBUG"/>
            <handlers>
                <handler name="ejb-trace-file"/>
            </handlers>
       </logger>
       <formatter name="COLOR-PATTERN">
           <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
       </formatter>
</logging-profile>

MANIFEST.MF

Manifest-Version: 1.0
Logging-Profile: accounts-app-profile

调用记录器

final static Logger logger = Logger.getLogger("com.company.accounts.ejbs");

logger.debug("debug");
logger.info("info");

文件ejb-trace.log创建但不写入

3 个答案:

答案 0 :(得分:2)

您尝试执行的操作不应该需要日志记录配置文件。假设类别为SOME_CONDITION并假设您希望将应用程序中的消息记录到自己的文件中,则以下CLI命令将

com.company.accounts.ejbs

如果您还希望将消息记录到控制台处理程序或server.log,则可以删除/subsystem=logging/file-handler=ejb-trace-file:add(level=DEBUG, file={relative-to=jboss.server.log.dir, path=ejb-trace.log}, autoflush=true) /subsystem=logging/logger=com.company.accounts.ejbs:add(level=DEBUG, handlers=[ejb-trace-file], use-parent-handlers=false) 属性或将其设置为use-parent-handlers=false

答案 1 :(得分:1)

这可能是旧文章,因为我遇到过该文章以解决上述问题,所以将来有人也可以阅读。因此,我想在这里分享我的答案。

就我而言,我关注了这篇帖子https://access.redhat.com/documentation/en-us/jboss_enterprise_application_platform/6.2/html/administration_and_configuration_guide/example_logging_profile_configuration和其他几篇文章,并在<logging-profile>的{​​{1}}文件中创建了standalone.xml,并在以下位置手动创建了wildFly server文件MANIFEST.MF文件夹,然后创建了日志文件,但是日志内容未写入其中。

原因是我的应用程序正在使用maven进行构建配置并创建清单文件。

如果应用程序使用\src\main\resources\META_INF进行构建配置或使用maven插件来创建maven文件,则必须在应用程序的manifest.mf文件中添加以下信息。 / p>

  • 如果应用程序使用pom.xml进行构建配置,则在maven pom.xml标签中添加以下行
<build> <plugins>
  • 如果应用程序使用 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.0.0</version> <configuration> <archive> <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile> </archive> </configuration> </plugin> 插件来创建maven文件,则在manifest.mf pom.xml中添加以下行,即
<manifestEntries>

添加此内容后,如果您执行<build> <plugins> <plugin> <archive> <manifestEntries> <Logging-Profile>myAppLogProfile</Logging-Profile> </manifestEntries> mvn clean,则mvn install行将被添加到war文件中的Logging-Profile: myAppLogProfile文件中

MANIFEST.MF

此后,当我重新部署它时,日志文件中包含日志内容。

希望这对某人有帮助。

答案 2 :(得分:0)

请勿更改root-logger,而是添加与您要调试的软件包名称相匹配的类别