Приложение Tomcat сообщает: “Не удалось настроить систему ведения журнала.Log.properties не найден.”

StackOverflow https://stackoverflow.com/questions/1628234

  •  06-07-2019
  •  | 
  •  

Вопрос

У меня есть встроенное приложение 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.

Ссылки:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top