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
相关产品推荐
相关产品推荐

