Saturday, May 9, 2009

Помилки в логах JBoss

Досить цікава ситуація виникла, коли спробував підняти solr на JBoss. При старті JBoss почав в логи сипати кучу повідомлень про помилки. Після читання вікі та сорців solr виявилося, що solr в якості логера використовую jdk logger, який по дефолту всі повідоплення відправляє в консоль (sys.err). А JBoss, який використовує lo4j, в свою чергу перехоплює всі звернення до системних потоків, приводить їх до формату lo4j і ставить рівень логи як ERROR.
Щоб привести це в порядок, потрібно сворити файл logger.properties приблизно наступного виду
# Default global logging level:
.level= INFO

# Write to a file:
handlers= java.util.logging.FileHandler

# Write log messages in XML format:
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter 

# Log to the current working directory, with log files named solrxxx.log
java.util.logging.FileHandler.pattern = solr%u.log
і підправити опці з якими стартує JBoss.
JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.config.file=/logging.properties