【问题标题】:logs doesn't getting printed using Logback using ConsoleAppender使用 ConsoleAppender 的 Logback 不会打印日志
【发布时间】:2019-07-06 10:30:05
【问题描述】:

我写了一个简单的程序,我在其中使用Logback。我的意图是使用内部将使用 STDOUT 的 ASYNS。

以下是 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

根据我目前的理解,它应该能够登录到控制台。然而,什么都没有发生。我的代码或配置是否有问题,或者我是否完全无法理解这个概念。

【问题讨论】:

    标签: java logging logback


    【解决方案1】:

    如果您使用 maven,请查看:Dependency management for SLF4J and Logback。也许您缺少必需的依赖项。 Sl4j 只是一个抽象,因为您是真正的记录器实现,必须添加为依赖项。

    【讨论】:

    • 是的,我有所有的依赖项,事实上,文件记录器工作正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 2015-07-08
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    相关资源
    最近更新 更多