简体   繁体   English

是否可以将日志发送到Logstash

[英]Is it possible to send logs to Logstash

In my Spring Boot app, I am using Logback to write logs to a file in /tmp/myLog.log. 在我的Spring Boot应用程序中,我正在使用Logback将日志写入/tmp/myLog.log中的文件。

In my app.yml: 在我的app.yml中:

logging:
  file: /tmp/myLog.log

My logback.xml: 我的logback.xml:

<configuration>
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
    <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%t] --- %-40.40logger{39} : %m%n"/>

    <appender name="FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%i</fileNamePattern>
        </rollingPolicy>
        <triggeringPolicy
                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <root level="INFO">
        <appender-ref ref="FILE" />
    </root>

</configuration>

Then I tell Logstash to look at this log file, in my conf file: 然后,我告诉Logstash在conf文件中查看此日志文件:

input {
  file {
    path => "/tmp/myLog.log"
    start_position => "beginning"
  }
}
output {
  elasticsearch { hosts => ["localhost:9200"] }
  stdout { codec => json }
} 

Now It is looking at this location at myLog.log. 现在,它正在myLog.log中查看此位置。 Is there a way to send logs to logstash instead of telling it to looking at a location, in my Spring Boot app? 在Spring Boot应用程序中,是否可以将日志发送到logstash而不是告诉它查看某个位置?

I was successfully playing around with the Logback-Elasticsearch-Appender . 我成功地使用了Logback-Elasticsearch-Appender You might want to give it a try. 您可能需要尝试一下。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM