【问题标题】:Logback with logstash-logback-encoder not working使用 logstash-logback-encoder 的 Logback 不起作用
【发布时间】:2023-03-11 05:16:01
【问题描述】:

我在使用带有 logstash-logback-encoder 的 Logback 时遇到问题。

我的 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”,日志记录会起作用,所以日志记录实际上会发生,但它没有存储在文件中。

【问题讨论】:

    标签: java servlets logging logback logstash


    【解决方案1】:

    logback 不太可能将日志记录到src/main/resources/logs/development.log 您应该尝试查看是否没有在项目的其他位置创建另一个 development.log 文件(例如在目标中,或者如果您将项目运行到另一个环境如服务器tomcat,寻找部署目录)

    一旦您确认了哪个文件实际获取了日志,您可以尝试配置 logstash,您必须将其作为单独的程序运行。因此,logstash 的配置不会在您的项目中进行。或者也许你可以在一个单独的项目中运行它,但这有点奇怪。我个人总是直接从命令行运行它。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2020-10-31
      • 2018-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多