Как инициализировать log4j правильно?

Как уже говорилось много раз - с div ~ p выбраны все элементы

, которым предшествует элемент

.

Проверьте этот список все селектор CSS.

273
задан Janusz 16 July 2009 в 10:32
поделиться

6 ответов

Log4j по умолчанию ищет файл с именем log4j.properties или log4j.xml в пути к классам. Вы можете контролировать, какой файл он использует для инициализации, задав свойства системы, как описано здесь (см. Раздел «Процедура инициализации по умолчанию»).

Например:

java -Dlog4j.configuration=customName ....

Заставит log4j искать файл с именем customName в пути к классам.

Если у вас возникли проблемы, я считаю полезным включить log4j.debug:

-Dlog4j.debug

Он будет печатать на System.out содержит много полезной информации о том, какой файл он использовал для инициализации, какие регистраторы / приложения были настроены и как и т. Д.

Файл конфигурации может быть файлом свойств java или файлом xml. Вот пример формата файла свойств, взятого из вводной страницы документации log4j :

log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
269
ответ дан 23 November 2019 в 02:12
поделиться

Решение знатока:

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

    <properties>
        <slf4jVersion>1.7.28</slf4jVersion>
    </properties>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4jVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-jdk14</artifactId>
            <version>${slf4jVersion}</version>
        </dependency>
0
ответ дан 23 November 2019 в 02:12
поделиться

Найдите в сети log4j.properties или log4j.xml с корневым приложением и поместите его в путь к классам.

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
log4j.rootLogger=debug, stdout

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

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=100KB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.File=test.log
log4j.appender.file.threshold=debug
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.rootLogger=debug,file

хотя для приложений подробного ведения журнала обычно необходимо увеличить 100 КБ до 1 МБ или 10 МБ, особенно для отладки.

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

10
ответ дан 23 November 2019 в 02:12
поделиться

В чем вы развиваете? Вы используете Apache Tomcat?

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyyMMdd HH:mm:ss.SSS} [[%5p] %c{1} [%t]] %m%n

У меня есть такие свойства в моем приложении Java.

1
ответ дан 23 November 2019 в 02:12
поделиться

При правильной настройке log4j отлично подходит для «реальных» проектов, вам может понадобиться быстрое и грязное решение, например, если вы просто тестируете новую библиотеку.

Если да, то вызов статического метода

org.apache.log4j.BasicConfigurator.configure();

установит базовое ведение журнала на консоль, и сообщения об ошибках исчезнут.

235
ответ дан 23 November 2019 в 02:12
поделиться

Мой log4j исправлен с помощью файла свойств ниже:

## direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
log4j.rootLogger=debug, stdout
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=100KB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.File=./logs/test.log
log4j.appender.file.threshold=debug
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.rootLogger=debug,file
1
ответ дан 23 November 2019 в 02:12
поделиться