Какие переменные я должен установить / передать в качестве аргументов JVM, чтобы log4j работал правильно? И под правильным я подразумеваю не жаловаться и не печатать на консоли. Могу я увидеть типичный пример?
Примечание. Мне нужно избегать создания файла log4j.properties в приложении.
Ответы:
У вас есть файл конфигурации log4j? Просто укажите его, используя
где {путь к файлу} должен иметь префикс
file:
Изменить: если вы работаете с log4j2, вам нужно использовать
Взято из ответа https://stackoverflow.com/a/34001970/552525
источник
{path to file}
необходимо добавить,file:
чтобы это сработало.Решение использует следующий аргумент JVM:
Если файл НЕ находится в пути к классам (в
WEB-INF/classes
случае Tomcat), а где-то на вашем диске, используйтеfile:
, напримерДополнительная информация и примеры здесь: http://logging.apache.org/log4j/1.2/manual.html
источник
-Dlogback.configurationFile=C:\logback-test.xml
-Dlog4j.debug
Кажется, это изменилось (вероятно, с log4j2) на:
См. Https://logging.apache.org/log4j/2.x/manual/configuration.html.
источник
JAVA_PARAMS="-Dlog4j.configurationFile=classpath:log4j2-container.xml"
если образ Docker поддерживает переопределение JAVA_PARAMS с помощью переменных env, а файл находится внутри Jar.Я знаю, что на это уже дан ответ, но поскольку вы сказали, что это не совсем то, что вы ищете, я хотел бы указать на следующую альтернативу:
Вы также можете использовать класс конфигурации вместо свойств или файла xml.
Подробнее см. Http://logging.apache.org/log4j/1.2/manual.html .
источник
Как правило, пока ваш файл log4j.properties находится в пути к классам, Log4j должен автоматически загружать его при запуске JVM.
источник
Поздно к вечеринке, поскольку с 2015 года Log4J 1.x достиг EOL .
Log4J 2.x и далее опция JVM должна быть
-Dlog4j.configurationFile=<filename>
PS
<filename>
может быть файлом относительно пути к классу без того,file:
как предлагается в других ответах.источник
Относительный путь тоже подходит:
или
источник
Если вы используете gradle. Вы можете применить плагин aplication и использовать следующую команду
источник