В моей WAR я хочу иметь свои собственные настройки, используя log4j.properties
(находится в WEB-INF/classes
). Ведение журнала для развертывания, как описано here, не работает, а именно JBoss не регистрирует ничего из моего приложения. Мое простое приложение (воспроизвести проблему) содержит:Как настроить slf4j - log4j для каждого развертывания для JBoss 7.2
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
Кто-нибудь сталкивался аналогичный вопрос?
Знаете ли вы, если это fixable? Как?
Для того, чтобы избежать путаницы относительно порога регистрации здесь это тело 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 logger настроен в standalone.xml
- не то, что я хочу.
Единственная разница в том, что вы добавили log4j.appender.stdout.Threshold = debug. В чем смысл? В любом случае, это не помогает (почему?) – pbielicki
см. Это .. http: // stackoverflow.com/questions/5119883/log4j-what-is-threshold –
пороговое значение определяет ваш режим ведения журнала, ошибки, отладки .. –