Я написал простую программу, в которой я использую Logback
. Я хотел использовать ASYNS, которая будет использовать STDOUT.
Вот список кода Java:
package com.example;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LogBackMainApp {
private static final Logger LOGGER =
LoggerFactory.getLogger(LogBackMainApp.class);
public static void main(String[] args) throws InterruptedException {
LOGGER.info("Hello world");
LOGGER.info("Hello world again");
Thread.sleep(5000);
}
}
Ниже приведен файл конфигурации:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" >
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- %d{yyyy-MM-dd HH:mm:ss.SSS} %thread %-5level %logger{0}:%L
If you required class name ,enable %logger{0}:%L -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %thread %-5level - %msg
%n</pattern>
</encoder>
</appender>
<appender name="ASYNC-STDOUT" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>1</queueSize>
<discardingThreshold>20</discardingThreshold>
<neverBlock>true</neverBlock>
<appender-ref ref="STDOUT" />
</appender>
<root level="INFO">
<appender-ref ref="ASYNC-STDOUT" />
</root>
Я определяю root
регистратор, который будет обслуживать мой пакет com.example
, и он ссылается на ASYNC-STDOUT
, который внутренне использует ch.qos.logback.core.ConsoleAppender
.
Согласно моему нынешнему пониманию, он должен быть в состоянии войти в консоль. Однако ничего не идет. Что-то не так в моем коде или конфигурации ИЛИ мне не хватает понимания концепции в целом.