You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Logback Loki4jAppender无法向Loki发送日志求排查方案

问题:Loki4jAppender无法向Loki发送日志(无错误提示)

问题描述

我尝试通过Loki4jAppender向Loki发送日志,但日志无法送达目标,且没有任何错误信息或失败提示。此前使用tinyloki测试可以正常推送日志,两者使用了相同的Loki地址配置,但Logback appender就是无法工作。由于Logback具备更多功能,我希望继续使用它而非tinyloki。

可正常工作的Tinyloki代码

LogController logController = TinyLoki
        .withUrl("http://<ip>:<port>/loki/api/v1/push")
        .start();

ILogStream stream = logController.stream() // Before v0.3.2 use createStream()
        .info()
        .l("host", "MyComputerName")
        .l("customLabel", "custom_value")
        .build();

stream.log("Hello world.");

logController.softStop().hardStop();

Logback配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration>

<configuration>
    <import class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"/>
    <import class="ch.qos.logback.core.ConsoleAppender"/>
    <import class="com.github.loki4j.logback.Loki4jAppender"/>

    <appender name="STDOUT" class="ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="LOKI" class="Loki4jAppender">
        <http>
            <url>http://<ip>:<port>/loki/api/v1/push</url>
        </http>
        <format>
            <label>
                <pattern>app=my-app,host=${HOSTNAME},level=%level</pattern>
            </label>
            <message>
                <pattern>l=%level h=${HOSTNAME} c=%logger{20} t=%thread | %msg %ex</pattern>
            </message>
            <sortByTime>true</sortByTime>
        </format>
        <verbose>true</verbose>
    </appender>

    <root level="debug">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="LOKI" />
    </root>
</configuration>

Logback测试代码

import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogbackToLokiTest {
    Logger logger = LoggerFactory.getLogger(LogbackToLokiTest.class);

    @Test
    public void loggingTest() {
        logger.info("Test log entry");
    }
}

Maven依赖配置

<dependency>
    <groupId>io.github.mjfryc</groupId>
    <artifactId>mjaron-tinyloki-java</artifactId>
    <version>0.3.11</version>
</dependency>

<dependency>
    <groupId>com.github.loki4j</groupId>
    <artifactId>loki-logback-appender</artifactId>
    <version>1.5.0-m1</version>
</dependency>

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.3.5</version>
</dependency>

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>2.0.4</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.3.5</version>
</dependency>

内容的提问来源于stack exchange,提问作者kanonroald

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 00:10:01