Log4j вводит файлы конфигурации и печатает все в консоль - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь зарегистрировать информацию с Log4j.Я создал log4j.properties:

# Root logger option
log4j.rootLogger=INFO, file, stdout
# configuration to print into file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\log\\logging.log
log4j.appender.file.MaxFileSize=12MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# configuration to print on console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

включенный регистратор:

private static final Logger logger = LogManager.getLogger(UserController.class);

и попытался войти:

   logger.debug("Debugging log");
    logger.info("Info log");
    logger.warn("Hey, This is a warning!");
    logger.error("Oops! We have an Error. OK");
    logger.fatal("Damn! Fatal error. Please fix me.");

Все же все вошло в консоль (иотладка игнорируется).

Мой файл свойств находится в папке \src\main\resources, я пробовал использовать конфигурацию на основе xml, но результат был тот же, не повезло с печатью его в файл.

Я допустил ошибку в конфигурации?Или где корень проблемы?

Спасибо за помощь

edit:

Я использую maven и spring-boot, у меня есть такая зависимость:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

1 Ответ

0 голосов
/ 01 апреля 2019

Пожалуйста, прочтите эту документацию для именования файлов настроек https://docs.spring.io/spring-boot/docs/1.2.1.RELEASE/reference/htmlsingle/#boot-features-custom-log-levels

Просто чтобы быть уверенным, я предполагаю, что вы используете Log4j, а не Log4j2.

Во-первых, корневой уровень ведения журнала INFO неверен.В этом контексте должно быть DEBUG.Здесь есть хорошая статья о иерархии уровней log4j: порядок иерархии журналов

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

log4j.rootLogger=DEBUG, file, stdout

Наконец, кажется, что исключениеXML не правильно.Вы найдете , сконфигурировавший Log4j для регистрации документ здесь https://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html Обратите внимание, что в этом документе ссылка на Log4j2.Для нашего случая нам нужно добавить зависимость Log4J.Вот мой XML:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
...