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

зависимость <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

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

<?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) то всё отображается строка за строкой, как надо.

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

1 Like

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

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

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

от ещё

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

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

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

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

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

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

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