我在使用logback与logstash-logback-encoder时遇到了问题。
我的logback.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="stash" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
<file>logs/development.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/development.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<root level="all">
<appender-ref ref="stash" />
</root>
</configuration>
我尝试在项目主页中创建日志/开发:
由于某种原因,它不会写入日志文件。
我试图添加:
input {
file {
path => "logs/development.log"
codec => "json"
}
}
但我不知道在我的项目中将其添加到何处,以便logStash能够识别它。
如果删除文件“logback.xml”,则日志记录有效,因此日志记录实际发生,但它不存储在文件中。
答案 0 :(得分:0)
logback很不可能记录到src/main/resources/logs/development.log
您应该尝试查看是否在项目的其他位置创建了另一个development.log
文件(例如,在目标中,或者如果您运行将项目转换为另一个环境,如服务器tomcat,查找部署目录)
确认哪个文件实际获取日志后,您可以尝试配置logstash,您必须将其作为单独的程序运行。因此,logstash的配置在您的项目中无处发生。或者也许你可以在一个单独的项目中运行它,但它有点奇怪。我个人总是直接从命令行运行它。
希望这有帮助