После добавления log4j в мое приложение я получаю следующий вывод при каждом запуске приложения:
log4j: ПРЕДУПРЕЖДЕНИЕ Не удалось найти ни одного дополнительного устройства для ведения журнала (slideselector.facedata.FaceDataParser). log4j: WARN Пожалуйста, правильно инициализируйте систему log4j.
Кажется, это означает, что файл конфигурации отсутствует. Где должен находиться этот конфигурационный файл и каков хороший стартовый контент?
Я использую обычный Java для разработки настольных приложений. Так что нет веб-сервера и т.д ...
configuration
log4j
Януш
источник
источник
Ответы:
Log4j
по умолчанию ищет файл с именемlog4j.properties
илиlog4j.xml
по пути к классам.Вы можете контролировать, какой файл он использует для инициализации, установив системные свойства, как описано здесь (см. Раздел «Процедура инициализации по умолчанию»).
Например:
Будет вызывать
log4j
поиск файла с именем customName в пути к классам.Если у вас возникли проблемы, я считаю полезным включить log4j.debug:
Он выведет в System.out много полезной информации о том, какой файл он использовал для инициализации, какие регистраторы / приложения были настроены и как и т. Д.
Файл конфигурации может быть файлом свойств Java или файлом XML. Вот пример формата файла свойств, взятый со страницы документации log4j :
источник
java -Dlog4j.configuration=customName
? Я попробовал Project / Preferences / Run / Debug Settings, выбрал некоторые конфигурации, нажал Edit, вкладку Arguments, аргументы VM. Включает ли customName расширение .xml?-Dlog4j.debug
может помочь отладить вашу конфигурацию.Хотя правильная настройка log4j отлично подходит для «реальных» проектов, вам может потребоваться быстрое и грязное решение, например, если вы просто тестируете новую библиотеку.
Если так, то вызов статического метода
настроит базовое ведение журнала на консоль, и сообщения об ошибках исчезнут.
источник
Logger.getRootLogger().setLevel(Level.INFO);
Если вы просто избавитесь от всего (например, если вы находитесь на тестах)
источник
Согласно странице Apache Log4j FAQ :
По сути, предупреждение « Никакие дополнительные приложения для регистратора не найдены» означает, что вы используете
log4j
систему регистрации, но вы не добавили никаких дополнительных элементов (таких как FileAppender, ConsoleAppender, SocketAppender, SyslogAppender и т. Д.) В файл конфигурации или файл конфигурации отсутствует.Существует три способа настройки log4j: с помощью файла свойств (
log4j.properties
), с помощью файла XML и с помощью кода Java (rootLogger.addAppender(new NullAppender());
).log4j.properties
Если у вас есть файл свойств (например, при установке Solr), вам нужно поместить этот файл в каталог classpath .
Путь к классам
Вот несколько советов команд в Linux, как определить значение вашего classpath:
или Java:
System.getProperty("java.class.path")
.Log4j XML
Ниже приведен основной файл конфигурации XML для log4j в формате XML:
Кот
Если вы используете Tomcat, вы можете поместить его
log4j.properties
в:/usr/share/tomcat?/lib/
или/var/lib/tomcat?/webapps/*/WEB-INF/lib/
папку.Solr
Для справки
log4j.properties
файл Solr по умолчанию выглядит так:Почему log4j не может найти мой файл свойств в приложении J2EE или WAR?
Смотрите также:
источник
Вы можете установить местоположение ваших log4j.properties из вашего Java-приложения, используя:
Более подробная информация доступна здесь: https://logging.apache.org/log4j/1.2/manual.html
источник
import
Заявление всегда полезно , как код завершения не все , что надежно.Найдите в Интернете файл log4j.properties или log4j.xml с корневым приложением и поместите его в путь к классам.
войдет в консоль. Я предпочитаю вход в файл, чтобы вы могли расследовать впоследствии.
хотя для приложений подробного ведения журналов обычно требуется увеличить размер 100 КБ до 1 МБ или 10 МБ, особенно для отладки.
Лично я настроил несколько регистраторов и установил корневой регистратор на уровень предупреждения или ошибки вместо отладки.
источник
Другой способ сделать это, не помещая файл свойств в путь к классам, - установить свойство непосредственно из кода Java. Вот пример кода.
}
источник
Вы можете настроить уровень журнала с помощью setLevel () .
Уровни полезны для простой установки вида информации, которую вы хотите, чтобы программа отображала.
Например:
Набор возможных уровней:
В соответствии с руководством службы регистрации
источник
источник
System.out
. Javadoc для метода настройки без аргументов гласит:Add a ConsoleAppender that uses PatternLayout using the PatternLayout#TTCC_CONVERSION_PATTERN and prints to System.out to the root category.
Чтобы включить
-Dlog4j.debug
, я захожу в Система, Расширенные настройки системы, Переменные среды и устанавливаю системную переменную_JAVA_OPTIONS
в-Dlog4j.debug
.источник
Чем ты занимаешься? Вы используете Apache Tomcat?
У меня есть такие свойства в моем приложении Java.
источник
Мой log4j был исправлен с помощью файла свойств ниже:
источник
Я создал файл log4j.properties в папке ресурсов рядом с файлом hibernate.cfg.xml и заполнил его текстом ниже:
теперь я избавился от предупреждений и ошибок
источник
Просто создайте log4j.properties в папке src / main / assembly. В зависимости от того, хотите ли вы, чтобы сообщения журнала отображались в консоли или в файле, вы изменяете свой файл. Следующее покажет ваши сообщения в консоли.
источник
Как объяснено ранее, есть 2 подхода
Во-первых, просто добавьте эту строку в ваш основной метод:
Второй подход заключается в добавлении этого стандартного файла log4j.properties в ваш путь к классам:
При втором подходе необходимо убедиться, что файл инициализирован правильно.
Например.
Убедитесь, что вы создали необходимую папку для хранения файлов журнала.
источник
Попробуйте установить атрибут отладки в log4j: узел конфигурации в значение true.
Он выводит информацию, когда файл конфигурации читается и используется для настройки среды log4j. Вы можете получить более подробную информацию для решения вашей проблемы.
источник
Logging API - Java Logging API облегчает обслуживание и обслуживание программного обеспечения на объектах заказчика, создавая отчеты журнала, пригодные для анализа конечными пользователями, системными администраторами, инженерами по обслуживанию на местах и командами разработчиков программного обеспечения. API-интерфейсы ведения журнала собирают такую информацию, как сбои безопасности, ошибки конфигурации, узкие места производительности и / или ошибки в приложении или платформе. Базовый пакет включает в себя поддержку доставки записей журнала в формате обычного текста или XML в память, выходные потоки, консоли, файлы и сокеты. Кроме того, API журналирования способны взаимодействовать со службами журналирования, которые уже существуют в операционной системе хоста.
Пакет java.util.logging «Предоставляет классы и интерфейсы основных средств ведения журнала платформы Java.
Log4j 1.x «log4j - популярная утилита ведения журналов на основе Java. Log4j - проект с открытым исходным кодом, основанный на работах многих авторов. Это позволяет разработчику контролировать, какие операторы журнала выводятся в различные места, используя Appenders [консоль, файлы, БД и электронная почта]. Он полностью настраивается во время выполнения с использованием внешних файлов конфигурации.
Файлы конфигурации могут быть записаны в формате XML или в формате свойств Java (ключ = значение).
MySQL Table структура для таблицы
logdata
источник
Для меня исправлением было поместить «log4j.properties» в папку «src».
источник
Если мы используем оболочку регистрации общих файлов Apache поверх log4j, то нам нужно, чтобы оба jar-файла были доступны в classpath. Также
commons-logging.properties
иlog4j.properties/xml
должен быть доступен в classpath.Мы также можем передать класс реализации и
log4j.properties
имя,JAVA_OPTS
используя либо-Dorg.apache.commons.logging.Log=<logging implementation class name> -Dlog4j.configuration=<file:location of log4j.properties/xml file>
. То же самое можно сделать через настройкуJAVA_OPTS
в случае приложения / веб-сервера.Это поможет вывести свойства, которые можно изменить при развертывании.
источник
Это альтернативный способ использования .yaml
Логическая структура:
Образец:
Ссылка: LOG4J 2 КОНФИГУРАЦИЯ: ИСПОЛЬЗОВАНИЕ YAML
источник
Для тестирования, быстрый способ, включая настройку уровня журнала:
источник
Maven решение:
Я столкнулся с теми же проблемами, что и выше, и для решения maven я использовал 2 зависимости. Эта конфигурация предназначена только для быстрого тестирования, если вы хотите, чтобы в простом проекте использовался регистратор со стандартной конфигурацией. Я могу представить, что вы захотите создать файл конфигурации позже, если вам потребуется дополнительная информация и или отрегулируйте свои собственные уровни ведения журнала.
источник
Я только что сделал это, и проблема была исправлена.
Следил за блогом ниже
https://intellij-support.jetbrains.com/hc/en-us/community/posts/206875685-How-to-fix-log4j-WARN-console-messages-when-running-an-Application-inside-IntelliJ- идея
Но здесь он говорит, как показано ниже
Чтобы это исправить, просто введите следующий файл log4j.resources в папку main / resources вашего проекта.
вместо создания log4j.resources создайте log4j.properties. Щелкните правой кнопкой мыши по ресурсу в IntelliJ -> Создать -> Пакет ресурсов - просто назовите его как log4j
источник
Если у вас возникла эта ошибка в Intellij IDEA даже после добавления файла
log4j.properties
илиlog4j.xml
в тестовую папку ресурсов, возможно, Intellij IDEA еще не знает о существовании файла.Итак, после добавления файла щелкните правой кнопкой мыши файл и выберите « Перекомпилировать log4j.xml» .
источник