Ответ 1
У вас есть файл конфигурации log4j? Просто используйте его с помощью
-Dlog4j.configuration={path to file}
где {путь к файлу} должен иметь префикс file:
Какие переменные мне нужно установить/передать в качестве аргументов JVM для правильной работы log4j? И правильно я имею в виду не жаловаться и печатать на консоль. Можно ли увидеть типичный пример?
Примечание. Мне нужно избегать создания файла log4j.properties в приложении.
У вас есть файл конфигурации log4j? Просто используйте его с помощью
-Dlog4j.configuration={path to file}
где {путь к файлу} должен иметь префикс file:
В решении используется следующий аргумент JVM:
-Dlog4j.configuration={path to file}
Если файл НЕ находится в пути к классам (в WEB-INF/classes
в случае Tomcat), но где-то на вашем диске, используйте file:
, например
-Dlog4j.configuration=file:C:\Users\me\log4j.xml
Дополнительная информация и примеры здесь: http://logging.apache.org/log4j/1.2/manual.html
Я знаю, что это уже ответили, но, поскольку вы сказали, это не совсем то, что вы ищете, я хотел бы указать на следующую альтернативу:
Вы также можете использовать класс конфигурации вместо свойств или XML файла.
-Dlog4j.configuratorClass=com.foo.BarConfigurator
Подробнее см. http://logging.apache.org/log4j/1.2/manual.html.
Кажется, что это изменилось (возможно, с log4j2):
-Dlog4j.configurationFile=file:C:\Users\me\log4j.xml
Смотрите: https://logging.apache.org/log4j/2.x/manual/configuration.html
Как правило, до тех пор, пока ваш файл log4j.properties находится в пути к классам, Log4j должен просто автоматически выбрать его при запуске JVM.
Поздно к партии, так как с 2015 года Log4J 1.x достиг EOL.
Log4J 2.x вперед Параметр JVM должен быть -Dlog4j.configurationFile=<filename>
P.S. <filename>
может быть файлом относительно пути класса без file:
, как предложено в других ответах.