Логгер slf4j-log4j12 выводит логи одной строкой

log4j
java
maven
Теги: #<Tag:0x00007f7b6d1ac9b8> #<Tag:0x00007f7b6d1ac7b0> #<Tag:0x00007f7b6d1ac530>

(Юра Куськов) #1

зависимость <artifactId>slf4j-log4j12</artifactId>.
проблема следующая:
есть множество строк logger.info("lala"); и непонятным образом некоторые из них идущие друг за другом выводятся в одну строку а не в следующую. как так-то??
более точно.
ожидалось:

2018-10-22 15:08:16 [INFO] - lalala
2018-10-22 15:08:21 [INFO] - lalala
2018-10-22 15:08:26 [INFO] - lalala

а вышло:

2018-10-22 15:08:16 [INFO] - lalala2018-10-22 15:08:21 [INFO] - lalala2018-10-22 15:08:26 [INFO] - lalala

причем иногда непонятным образом он всётаки делает перенос и получается:

2018-10-22 15:08:16 [INFO] - lalala2018-10-22 15:08:21 [INFO] - lalala
2018-10-22 15:08:26 [INFO] - lalala

(Максим Таран) #2

А как настроен log4j.xml?


(Юра Куськов) #3
<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
            </Pattern>
        </layout>
    </appender>

    <logger name="logger" level="debug" additivity="false">
        <appender-ref ref="STDOUT" />
    </logger>

    <root level="error">
        <appender-ref ref="STDOUT" />
    </root>

</configuration>

и ещё такой момент. эта проблема актуально когда я запускаю тест через Run(file.feature). Если через Maven-команды (test/install) то всё отображается строка за строкой, как надо.


(Максим Таран) #4

Странно, а почему номера потока нет?
Понимаю, что скорее всего врядли, но попробуйте тег pattern с маленькой буквы написать.


(Юра Куськов) #5

Попробовал, эта магия не сработала)


(Юра Куськов) #6

На счёт номера потока не знаю, эта конфигурация передаётся от человека к человеку и пояснение к ней утрачено, что досадно конечно же. Но сие работает)


(Максим Таран) #7

А всё-таки интересно. Почему нет потока? Было бы интересно проследить.


(Юра Куськов) #8

от ещё

log4j2.properties
log4j.rootLogger=INFO, file, stdout
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=target/test-classes/logging.txt
log4j.appender.file.Encoding=UTF-8
log4j.appender.file.MaxFileSize=10MB
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} [%-p] - %m%n
# 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.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-p] - %m%n


(Максим Таран) #9

В смысле у Вас два файла настройки?


(Юра Куськов) #10

Извиняюсь, как я разобрался, файл настроек log4j2.properties, другой не используется

тык
/*******************************************************************************************************************
     * Конструктор класса.
     ******************************************************************************************************************/
    public CommonPage() {
        super();
        PropertyConfigurator.configure("src/main/resources/log4j2.properties");
    }

(Vatslau) #11

logger если свежай версии
должен искать по приоритету сначала ямл, потом хмл,
в конце потом проперти если не нет других

пробуйте паттерн изменить на общепринятый

%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %m%n