Логирование с использованием Maven

Пытаюсь подключить логирование, использую только зависимости, с установкой библиотек на работе большие проблемы, начал с Lomboka, с ним ни чего не вышло, теперь хотелось бы, чтобы оно хоть как-нибудь заработало, вот мой помник:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.10</version>
    <scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.13.3</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.13.3</version>
</dependency>

в классе добавляю переменную:

private static final Logger logger = LoggerFactory.getLogger(WindowFunction.class);

IDE подтягивает импорты:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

вот запись в лог:

logger.info("start");

всё OK, ошибок нет, но сообщение не выводится. Создал файл log4j.properties, но я так понимаю, что для вывода в консоль он не обязателен:

log4j.rootLogger=INFO, file, stdout
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.threshold=INFO
log4j.appender.file.File=log/Log.txt
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=6
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p %c{1}:%L - %m%n
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.threshold=INFO
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}
log4j.logger.org.springframework=ERROR
log4j.logger.org.hibernate=ERROR
log4j.logger.org.apache.cxf=ERROR

Всё равно ни чего не выводится.


Ответы (3 шт):

Автор решения: Alexandr

Вы используете Log4j 2. Соответственно Вам необходимо указать либо log4j2.xml, либо log4j2.properties.

Ниже приведен пример log4j2.properties (должен быть в src/main/resources):

# Print configuration errors only
status=error

# Console appender
appender.console.type=Console
appender.console.name=LogToConsole
appender.console.layout.type=PatternLayout
appender.console.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

# Root logger
rootLogger.level=info
rootLogger.appenderRef.console.ref=LogToConsole
→ Ссылка
Автор решения: Barmaley

Нужно настройки прописать в файле resources/log4j.xml, примерно так:

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration
        xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
        </layout>
    </appender>

    <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="mylogs.log"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
        </layout>
    </appender>

    <root>
        <priority value ="debug"></priority>
        <appender-ref ref="console"></appender-ref>
        <appender-ref ref="fileAppender"></appender-ref>
    </root>

</log4j:configuration>

Предварительно в maven прописать каталог resources как ресурсы:

    <resources>
        <resource>
            <directory>src/resources</directory>
        </resource>
    </resources>
→ Ссылка
Автор решения: alex

Заработал вывод в консоль после того как исправил помник:

<dependency> 
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.28</version>
</dependency>
<dependency> 
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.28</version>
</dependency>
→ Ссылка