Я поместил log4j в путь сборки, но при запуске приложения я получаю следующее сообщение:
log4j:WARN No appenders could be found for logger (dao.hsqlmanager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Что означают эти предупреждения? Что здесь за аппендант?
Ответы:
Это краткое введение в log4j руководство немного устарело, но все еще действует.
Это руководство даст вам некоторую информацию о том, как использовать регистраторы и приложения.
Просто чтобы начать, у вас есть два простых подхода.
Во-первых, просто добавьте эту строку в ваш основной метод:
Второй подход заключается в добавлении этого стандартного
log4j.properties
(взятого из вышеупомянутого руководства) файла в ваш путь к классам:источник
log4j.rootLogger=DEBUG, A1
это линия, которую я пропускал все время.Похоже, вам нужно добавить местоположение вашего
log4j.properties
файла в Classpath в Eclipse.Убедитесь, что ваш проект открыт в Eclipse, затем нажмите на меню «Выполнить» в верхней части Eclipse и выберите следующее:
Сообщение об ошибке больше не должно появляться.
источник
Быстрое решение:
добавить код в основную функцию :
создайте файл с именем log4j.properties в / path / to
источник
Это всего лишь предупреждение.
Крепежная
Это происходит, когда файлы конфигурации по умолчанию
log4j.properties
иlog4j.xml
не могут быть найдены и приложение выполняет никакой явной конфигурации.Чтобы это исправить, просто создайте / скопируйте
log4j.properties
илиlog4j.xml
укажите местоположение на пути к классам (обычно такое же, как у файлов jar).По желанию можно указать вариант Java:
-Dlog4j.configuration=file:///path/to/log4j.properties
.Отладка
Для отладки вы можете попробовать использовать
-Dlog4j.debug=true
параметр.Конфигурация
log4j.properties
Пример конфигурации
log4j.properties
:Вот еще один файл конфигурации, который использует несколько приложений:
Apache Solr
Если вы используете Solr , скопируйте
<solr>/example/resources/log4j.properties
в путь на пути к классам .Пример конфигурации
log4j.properties
от Solr выглядит так:Смотрите также:
источник
Большинство ответов здесь предполагает, что
log4j.properties
файл должен быть расположен в правильном месте (для проекта maven он должен находиться вsrc/main/resources
)Но для меня проблема в том, что мой
log4j.properties
неправильно настроен. Вот пример, который работает для меня, вы можете попробовать его в первую очередь.источник
Как объяснено ранее, есть 2 подхода
Во-первых, просто добавьте эту строку в ваш основной метод:
Второй подход заключается в добавлении этого стандартного файла log4j.properties в ваш путь к классам:
При втором подходе необходимо убедиться, что файл инициализирован правильно, например.
Убедитесь, что вы создали необходимую папку для хранения файлов журнала.
источник
Вы используете
Logger
в своем коде для входа в сообщение. ОбъектAppender
- это объект, добавляемый дляLogger
записи сообщения в конкретную цель. ЕстьFileAppender
для записи в текстовые файлы илиConsoleAppender
для записи в консоли. Вам нужно показать свой код настройки Logger и Appender для получения дополнительной помощи.пожалуйста, прочитайте руководство для лучшего понимания взаимодействия Logger и Appender.
источник
Убедитесь, что файл свойств установлен правильно. И снова, похоже, что компилятор не может найти файл свойств, вы можете установить его в pom следующим образом (только при использовании проекта maven).
источник
Я получаю ту же ошибку. Вот проблема, которая приводит к этому сообщению об ошибке:
Я создаю несколько объектов, которые используют Logger, прежде чем настраивать log4j:
Решение: Настройте log4j в начале в основном методе:
источник
Я думаю, вы должны понимать, где файл jar log4j или код Java ищет файлы конфигурации log4j.
src/main/resources/log4j.properties
это путь затмения. Разместите их в правильном месте, чтобы вам не приходилось жестко кодировать абсолютный путь в коде.Прочитайте мою статью и пример решения для этого http://askyourquestions.info/2016/03/27/how-to-see-where-the-log-is-logger-in-slf4j/
источник
Еще одна причина, по которой это может произойти (в RCP4), заключается в том, что в целевом файле вы используете несколько каркасов журналирования. Например, это произойдет, если вы используете комбинацию slf4j, log4j и ch.qos.logback.slf4j на вкладке содержимого целевых файлов.
источник
Добавьте следующее в качестве первого кода:
источник
В моем случае ошибкой стал флаг « Аддитивность ». Если для вашего корневого пакета проекта «false», то у дочерних пакетов не будет appender, и вы увидите ошибку « appender not found ».
источник
Я столкнулся с той же проблемой, когда пытался запустить тестовый класс JUnit.
Проблема устранена после того, как я вручную добавил файл log4j.properties в папку src / test / resources.
Добавление приведенного ниже кода в файл log4j.properties решило проблему:
источник
Я столкнулся с этой проблемой при попытке создать исполняемый jar-файл с maven в intellij 12. Оказалось, что из-за того, что файл манифеста java не содержит пути к классам, файл свойств log4j не может быть найден на корневом уровне (где файл jar был выполнен из.)
К вашему сведению, я получал регистратор вот так:
И я смог заставить его работать с файлом pom, который включал это:
источник
Убедитесь, что ваш проект открыт в Eclipse, затем нажмите на меню «Выполнить» в верхней части Eclipse и выберите следующее:
Запустить
Запустить конфигурации
Classpath (вкладка)
Записи пользователя
добавить банку справа
добавить файл jar log4j
Применять
Запустить
Сообщение об ошибке больше не должно появляться.
источник
Причиной может быть отсутствие слова
static
в некоторых:Если я сделаю logger полем экземпляра, я получу именно это предупреждение:
Что еще хуже, предупреждение указывает не на то
ProcessorTest
, где находится ошибка, а на совершенно другой класс (Отправителя) как источник проблем. Этот класс имеет правильный регистратор наборов и не требует каких-либо изменений Мы могли бы искать проблему целую вечность!источник
Я столкнулся с той же проблемой, когда я использую log4j2. Моя проблема вызвана использованием неправильной зависимой библиотеки:
Вместо этого я должен использовать:
В моем случае у меня есть log4j2.xml, определенный в моей директории "resources" и указанный для его использования:
источник
Log4J отображает это предупреждение при поиске Java-кода Log4j для создания первой строки журнала в вашей программе.
На данный момент Log4j делает 2 вещи
log4j.properties
файлlog4j.properties
Если
log4J
не удается найтиlog4j.properties
файл или если Appender объявлен вlog4j.rootlogger
не определено вlog4j.properties
файле отображается предупреждающее сообщение.ВНИМАНИЕ: содержимое файла свойств должно быть правильным.
Следующее содержание НЕ является правильным
потому что
file
appender объявлен в LOWER-CASE вlog4j.rootlogger
операторе и определен в операторе log4j.appender с помощью UPPER-CASE!Правильный файл будет
Если используется MAVEN, вы должны поместить файлы log4j.properties в
src/main/resources
И запустить сборку MAVEN.Файл log4j.properties затем копируется в
target/classes
папку.Log4J использовать найденный
log4j.properties
файлtarget/classes
!источник
У меня тоже была эта пробема. Я просто забыл пометить каталог ресурсов в IntelliJ IDEA
источник
Если вы используете Eclipse , и эта проблема появилась из ниоткуда после того, как все заранее работало нормально, попробуйте собирается
Project - Clean - Clean
.источник
Не удалось найти мою установку Eclipse
log4j.properties
при запуске тестов JUnit из Eclipse, хотя файл находился по адресуsrc/test/resources
.Причина заключалась в том, что Eclipse (или коннектор m2e ) не копировал содержимое из
src/test/resources
ожидаемой выходной папкиtarget/test-classes
- основной причиной было то, что в свойствах проекта в Java Build Path -> вкладка Source -> Исходные папки на пути сборки -> src / test / resources , как-то былаExcluded: **
запись. Я удалил эту исключенную запись.Кроме того, я мог бы вручную скопировать
src/test/resources/log4j.properties
вtarget/test-classes/log4j.properties
.источник
Если
log4j.properties
он действительно находится на пути к классам, вы используете Spring Boot для создания файла WAR для развертывания на сервере приложений, вы пропускаетеweb.xml
файл в пользу автоматической настройки Spring Boot и не получаете никаких сообщений журнала, вам нужно явно настроить Log4j. Предполагая, что вы используете Log4j 1.2.x:источник
Может быть, добавить соответствующий проект, содержащий log4j в пути сборки Java, я добавляю в него mahout_h2o, когда столкнулся с этой проблемой в проекте mahout с использованием eclipse, это работает!
источник
если вы работаете вместе со многими проектами, вы можете столкнуться с проблемой стиля.
* у вас должен быть один файл lof4j.properties, и этот файл включен в свойства журнала другого проекта.
* Кроме того, вы можете попытаться поместить файлы свойств log4j в путь src, когда проект работает под управлением ОС Linux, библиотеки libs другого проекта и файлы log4.properties могут находиться в одной папке в папке на пути к классам.
источник
Первый импорт:
Затем добавьте следующий код в метод main:
Создайте файл по пути к нему и добавьте приведенный ниже код в этот файл.
источник
Решение на этом сайте работало для меня https://crunchify.com/java-how-to-configure-log4j-logger-property-correctly/ . Теперь я не вижу никаких предупреждений от log4j
Я помещаю это в файл log4j.properties, который я помещаю в src / main / resources
источник
Прежде всего: создайте файл log4j.properties
Поместите его в src / main / resources /
После этого используйте следующие 2 зависимости:
Необходимо добавить эту окончательную зависимость в файл POM:
источник
Рассмотрим аргумент JVM log4j Dlog4j.configuration
В основном:
Добавьте аргумент JVM, который указывает на файл конфигурации log4j. Синтаксис выглядит так:
Пример реальной командной строки выглядит так:
Для пользователей IntelliJ IDE:
Советы:
1. Пользователи Eclipse IDE найдут эквивалентный подход
2. Для редактора конфигурации run / debug очень вероятно, что в начале времен ваш конкретный исполняемый файл отсутствовал. В зависимости от размера проекта, над которым вы сейчас работаете, может быть неприятно перемещаться по каталогам, чтобы найти его. Это меньше хлопот, если вы просто запустите / выполните файл (нажмите кнопку воспроизведения) один раз, прежде чем приступить к запуску / отладке конфигурации независимо от результата выполнения.
3. Обратите внимание на ваш рабочий каталог, относительные пути и путь к классам.
источник
Для меня причина была, по-видимому, иной, а сообщение об ошибке вводило в заблуждение.
Имея только это в моем build.gradle, он будет жаловаться на то, что slf4j отсутствует в начале журнала, но все равно регистрирует вещи, хотя и в плохом формате:
Добавление этой зависимости вызовет для меня обсуждаемое сообщение об ошибке «не найден ни один из них», хотя я определил их в
src/main/java/log4j.properties
:Наконец, добавление следующей зависимости (о которой я только догадывался, копируя ее из другого проекта) решило проблему:
Я не знаю почему, но с этим это работает. Есть идеи по этому поводу?
источник