Как изменить уровень журнала пакета с помощью Log4j?



я столкнулся со следующей ошибкой:



http://issues.apache.org/jira/browse/AXIS2-4363



в нем говорится следующее:




эта ошибка возникает только при уровне журнала
для организации.апаш.аксиома-это отладка так а
обходной путь-установить уровень журнала >
ОТЛАЖИВАТЬ.




мой вопрос в том, как мне это сделать? Я просматривал свои каталоги для файла свойств или чего-то еще, и я искал, есть ли там было что-то, что я мог бы установить в коде, но я действительно понятия не имею, что я делаю. Я запускаю консольное приложение на своем рабочем столе прямо сейчас, пытаясь заставить это работать.



обновление 1: я заметил, что мой каталог Axis2 имеет свой собственный файл log4j.properties в своем корне. Это безопасно игнорируется или это часть решения (или часть проблемы)?



обновление 2: корневой уровень log4j. properties файл в настоящее время не установлен правильно. Прямо сейчас это выглядит так это:



log4j.rootLogger=DEBUG, R 
log4j.logger.org.apache.axiom=WARN
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.MaxFileSize=10MB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n


но это, по-видимому, неправильно, так как этот код возвращает "Log level is null":



System.out.println("Log level is " + logger.getLevel());


сейчас я устанавливаю уровень журнала в коде с помощью



Logger logger = Logger.getLogger("org.apache.axiom");
logger.setLevel(Level.WARN);
682   5  

5 ответов:

какой сервер приложений вы используете? Каждый из них помещает свою конфигурацию ведения журнала в другое место, хотя большинство из них в настоящее время используют Commons-Logging в качестве оболочки вокруг Log4J или java.утиль.лесозаготовительный.

используя Tomcat в качестве примера,документ объясняет ваши параметры для настройки ведения журнала с помощью любого из вариантов. В любом случае вам нужно найти или создать файл конфигурации, который определяет уровень журнала для каждого пакета и каждого места, где система ведения журнала будет выводить информацию журнала (обычно консоль, файл или БД).

в случае log4j это будет файл log4j. properties, и если вы будете следовать инструкциям в ссылке выше, ваш файл будет выглядеть так:

log4j.rootLogger=DEBUG, R 
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=${catalina.home}/logs/tomcat.log 
log4j.appender.R.MaxFileSize=10MB 
log4j.appender.R.MaxBackupIndex=10 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

проще всего было бы изменить строку:

log4j.rootLogger=DEBUG, R

к чему-то вроде:

log4j.rootLogger=WARN, R

но если вы все еще хотите, чтобы ваш собственный уровень отладки выводился из ваших собственных классов, добавьте строку, которая говорит:

log4j.category.com.mypackage=DEBUG

читать немного настройки log4j и Commons-Logging поможет вам понять все это.

Я сегодня столкнулся с точно такой же проблемой.

в своем src (или корневой) каталог, мой log4j. properties файл теперь имеет следующее дополнение

# https://issues.apache.org/jira/browse/AXIS2-4363
log4j.category.org.apache.axiom=WARN

Спасибо за головы о том, как это сделать, Бенджамин.

эта работа для меня:

log4j.logger.org.hibernate.type=trace

можно попробовать:

log4j.category.org.hibernate.type=trace

Я просто столкнулся с проблемой и не мог понять, что происходит не так, даже после прочтения всего выше и все там. То, что я сделал

  1. установите уровень корневого регистратора, чтобы предупредить
  2. установите уровень журнала пакета для отладки

каждая реализация регистрации имеет свой собственный способ установки его с помощью свойств или с помощью кода (много помощи, доступной на этом)

независимо от всего вышеперечисленного я бы не получил журналы в моем консоль или в файл журнала. То, что я пропустил, было ниже...


enter image description here


все, что я делал с вышеупомянутым жонглерством, контролировало только производство журналов(в корне/пакете/классе и т. д.), слева от красной линии на изображении выше. Но я не менял способ отображения / потребления журналов одного и того же, справа от красной линии на изображении выше. Обработчик (потребление) обычно по умолчанию в INFO, поэтому ваш драгоценный отладочные операторы не прошли бы. Потребление / отображение контролируется путем установки уровней журнала для обработчиков (ConsoleHandler / FileHandler и т. д..) Поэтому я пошел вперед и установил уровни журнала всех моих обработчиков в finest, и все сработало.

этот пункт не был четко сформулирован ни в одном месте.

Я надеюсь, что кто-то чешет голову, думая, почему свойства не работают найдете в этом поможет.

установите системное свойство log4j. debug=true. Затем вы можете определить, где ваша конфигурация вразнос.

Comments

    Ничего не найдено.