0
在我的Spring Boot應用程序中,我使用Logback將日誌寫入/tmp/myLog.log中的文件。是否可以發送日誌到Logstash
在我app.yml:
logging:
file: /tmp/myLog.log
我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>
然後我告訴Logstash看看這個日誌文件,在我的conf文件:
input {
file {
path => "/tmp/myLog.log"
start_position => "beginning"
}
}
output {
elasticsearch { hosts => ["localhost:9200"] }
stdout { codec => json }
}
現在它正在myLog.log中查看此位置。有沒有辦法將日誌發送到logstash,而不是告訴它在我的Spring Boot應用程序中查看位置?
logstash還有其他輸入,包括tcp {}和udp {}。如果您的日誌系統可以將數據發送到端口,則logstash可以在不使用中間文件的情況下監聽它們。但是,如果logstash關閉(或者elasticsearch擁塞等),一定要弄清楚你的日誌會發生什麼。 –