Приложение Tomcat сообщает: “Не удалось настроить систему ведения журнала.Log.properties не найден.”
Вопрос
У меня есть встроенное приложение 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.Так что же это дает?
Спасибо!-Карл
Решение
Автор: встроенное приложение 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
(или нет) и поместить его в classpath вашего приложения (или установить -Djava.util.logging.config.file
)?
Другие советы
По умолчанию log4j будет искать файл свойств ведения журнала в classpath .Поместите конфигурационный файл свойств ведения журнала вашего веб-приложения в его каталог WEB-INF / classes;например ,
$CATALINA_HOME/webapps/<yourApp>/WEB-INF/classes/log4j.properties
Это простой подход к тому, чтобы заставить веб-приложение использовать Log4j, рекомендованный в документации, на которую даны ссылки.И это тот подход, который я сам использую для ведения журнала в веб-приложении.
Существуют также различные другие способы настройки ведения журнала Log4j в Tomcat.Вполне возможно, что ваш Tomcat был (частично) настроен на использование одного из них, но что-то было сделано не совсем правильно.
Настройка ведения журнала log4j Tomcat через системные свойства - это вариант , который позволяет избежать выяснения, куда смотрит log4j ...и что происходит не так.Но затем вы сталкиваетесь с созданием / использованием пользовательского сценария запуска или необходимостью не забывать устанавливать переменные среды перед запуском Tomcat.
Ссылки:
- Настройка ведения журнала в Tomcat 5.5
- Настройка ведения журнала на Tomcat 6
- Раздел "Инициализация по умолчанию в Tomcat" в Руководство пользователя Log4j