私のWARでは、log4j.properties
(にあるWEB-INF/classes
)を使用して独自の設定をしたいと考えています。ここで説明されているデプロイメントごとのロギングは機能しません。つまり、JBoss はアプリケーションから何もログに記録しません。私の単純なアプリ(問題を再現するため)には以下が含まれます:
WEB-INF/classes/log4j.properties
WEB-INF/classes/logging/LoggingContextListener.class
WEB-INF/lib/log4j-1.2.17.jar
WEB-INF/lib/slf4j-api-1.7.5.jar
WEB-INF/lib/slf4j-log4j12-1.7.5.jar
LoggingContextListener
ランダムな文字列をログに記録するだけです
。log4j.properties
内容:
log4j.rootLogger=WARN, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
誰かが同様の問題に遭遇しましたか?
それが修正可能かどうか知っていますか?どのように?
ログのしきい値に関する混乱を避けるために、LoggingContextListener
System.err.println("Trying to log something using SLF4J-Log4J");
org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(getClass());
logger.error("Hello");
logger.warn("anybody home?");
logger.info("can you hear me?");
logger.debug("WTF?");
System.err.println("Did you notice any logs?");
log4j.properties
クラスパスから削除すると、次のようになります。
ERROR [stderr] (ServerService Thread Pool -- 54) Trying to log something using SLF4J-Log4J
ERROR [logging.LoggingContextListener] (ServerService Thread Pool -- 54) Hello
WARN [logging.LoggingContextListener] (ServerService Thread Pool -- 54) anybody home?
INFO [logging.LoggingContextListener] (ServerService Thread Pool -- 54) can you hear me?
ERROR [stderr] (ServerService Thread Pool -- 54) Did you notice any logs?
しかし、これらのログは、設定されたJBossロガーから直接取得されますstandalone.xml
-私が望むものではありません。