Как изменить уровень журнала пакета с помощью 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);
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
Я просто столкнулся с проблемой и не мог понять, что происходит не так, даже после прочтения всего выше и все там. То, что я сделал
- установите уровень корневого регистратора, чтобы предупредить
- установите уровень журнала пакета для отладки
каждая реализация регистрации имеет свой собственный способ установки его с помощью свойств или с помощью кода (много помощи, доступной на этом)
независимо от всего вышеперечисленного я бы не получил журналы в моем консоль или в файл журнала. То, что я пропустил, было ниже...
все, что я делал с вышеупомянутым жонглерством, контролировало только производство журналов(в корне/пакете/классе и т. д.), слева от красной линии на изображении выше. Но я не менял способ отображения / потребления журналов одного и того же, справа от красной линии на изображении выше. Обработчик (потребление) обычно по умолчанию в INFO, поэтому ваш драгоценный отладочные операторы не прошли бы. Потребление / отображение контролируется путем установки уровней журнала для обработчиков (ConsoleHandler / FileHandler и т. д..) Поэтому я пошел вперед и установил уровни журнала всех моих обработчиков в finest, и все сработало.
этот пункт не был четко сформулирован ни в одном месте.
Я надеюсь, что кто-то чешет голову, думая, почему свойства не работают найдете в этом поможет.
установите системное свойство log4j. debug=true. Затем вы можете определить, где ваша конфигурация вразнос.

Comments