簡體   English   中英

如何使log4j不打印stdout,線程名

[英]How to make log4j not to prints stdout, thread name

為什么log4j打印:

17:58:30,623 INFO  [stdout] (http--127.0.0.1-8080-5)

完整的消息是:

17:58:30,623 INFO  [stdout] (http--127.0.0.1-8080-5) 2012-12-09 17:58:30.623 [INFO] com.edfx.adb.web.controller.AuthController#login - A message

我正在使用JBoss AS7,並且已經排除了log4j,例如:

<jboss-deployment-structure>
    <deployment>
        <exclusions>
            <module name="org.apache.log4j" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>

我的log4j.properties是:

log4j.rootLogger=INFO, CA

log4j.appender.CA=org.apache.log4j.ConsoleAppender

log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%p] %c#%M - %m%n

我想將消息打印為:

2012-12-09 17:58:30.623 [INFO] com.edfx.adb.web.controller.AuthController#login - A message

我該怎么做?

這是因為JBoss STDIO將stdout和stderr包裝,而log4j ConsoleAppender輸出包裝到stdout。

您可以通過配置日志記錄子系統而不是使用log4j.properties文件來完成嘗試做的事情。 使用日志記錄子系統,也沒有理由在jboss-deployment-structure.xml排除依賴jboss-deployment-structure.xml

<subsystem xmlns="urn:jboss:domain:logging:1.1">

    <console-handler name="CONSOLE">
        <level name="INFO"/>
        <formatter>
            <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%p] %c#%M - %m%n"/>
        </formatter>
    </console-handler>

    <!-- other handlers and loggers -->

    <root-logger>
        <level name="INFO"/>
        <handlers>
            <handler name="CONSOLE"/>
        </handlers>
    </root-logger>
</subsystem>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM