Tomcat App говорит: «Невозможно настроить систему ведения журнала. Не найдено log.properties» - PullRequest
0 голосов
/ 27 октября 2009

У меня есть встроенное приложение tomcat, и всякий раз, когда я его запускаю, я вижу, как эта ошибка дважды выводится на консоль:

Unable to configure the logging system.  No log.properties was found.

Это кажется глупым, но я немного погуглил и искал stackoverflow, и, похоже, не могу найти кого-то, кто столкнулся с этой проблемой.

Мой основной класс выглядит примерно так:

public class AuthServerEntryPoint {
  static {
    org.apache.log4j.PropertyConfigurator.configure("conf/log4j.properties");
  }
public static void main(String[] args) {
  // ...
}

"conf / log4j.properties" содержит, казалось бы, правильную конфигурацию:

log4j.appender.mainAppend=org.apache.log4j.ConsoleAppender
log4j.appender.mainAppend.layout=org.apache.log4j.PatternLayout
log4j.appender.mainAppend.layout.ConversionPattern=%d %p [%t] %c -- %m%n 

log4j.appender.fileAppend=org.apache.log4j.FileAppender
log4j.appender.fileAppend.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppend.layout.ConversionPattern=%d %p [%t] %c - %m%n 
log4j.appender.fileAppend.file=logs/myservice.log

log4j.rootLogger = info, fileAppend
log4j.logger.com.mycompany.myservice = debug, fileAppend

И регистрация фактически работает - то есть, записи правильно записываются в myservice.log. Так что же дает?

Спасибо! -Carl

Ответы [ 2 ]

1 голос
/ 27 октября 2009

Под встроенным приложением Tomcat вы имеете в виду, что вы запускаете Tomcat из кода Java и используете класс org.apache.catalina.startup.Embedded?

Если да, то я предполагаю, что Tomcat может не найти свой файл конфигурации ведения журнала, настроенный в catalina.sh (или эквивалентный) при использовании сценариев:

LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"

Странно то, что этот файл называется logging.properties, а не log.properties, поэтому я действительно не уверен. Хотя я не проверял источники Tomcat, может, они там занимаются какой-то черной магией.

Не могли бы вы просто попытаться переименовать $CATALINA_BASE/conf/logging.properties в log.properties (или нет) и поместить его в путь к классам вашего приложения (или установить -Djava.util.logging.config.file)?

1 голос
/ 27 октября 2009

По умолчанию log4j будет искать файл свойств ведения журнала в пути к классам. Поместите файл конфигурации свойств регистрации вашего веб-приложения в его каталог WEB-INF / classes; например,

$CATALINA_HOME/webapps/<yourApp>/WEB-INF/classes/log4j.properties

Это простой подход к получению веб-приложения для использования Log4j, рекомендованный в ссылочной документации. И именно такой подход я использую для регистрации в веб-приложениях.

Существуют и другие способы настройки ведения журнала Log4j на Tomcat. Возможно, ваш Tomcat был (частично) настроен на использование одного из них, но что-то было сделано не совсем правильно.

Настройка регистрации Tomcat 'log4j через системные свойства - это опция, позволяющая избежать выяснения, где ищет log4j ... и что идет не так. Но затем вы застряли с созданием / использованием пользовательского сценария запуска или с необходимостью не забыть установить переменные среды перед запуском Tomcat.

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...