2016-02-11 163 views
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應用程序中查看位置?

+1

logstash還有其他輸入,包括tcp {}和udp {}。如果您的日誌系統可以將數據發送到端口,則logstash可以在不使用中間文件的情況下監聽它們。但是,如果logstash關閉(或者elasticsearch擁塞等),一定要弄清楚你的日誌會發生什麼。 –

回答

相關問題