我在登錄log4j中的正確日期時間時遇到問題,並使用logstash解析它。 我用log4j(1.2.17)和一個只生成一些日誌的小應用程序設置了一個tomcat。 我使用%d{ISO8601}
來記錄時間,結果是時區丟失,logstash認爲它是UTC,因爲我解析它。如何使用logstash記錄正確的時區,可以通過logstash解析
date {
type => "tomcat"
match => [ "orig_timestamp", "ISO8601"]
}
之後,我嘗試了以下內容:
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ISO8601}%d{Z} %-5p %50.50c - %m%n" />
</layout>
但導致logstash以下錯誤:
{:timestamp=>"2013-10-17T19:13:12.977000+0200", :message=>"Failed parsing date from field", :field=>"orig_timestamp", :value=>"2013-10-17 19:00:02,059+0200", :exception=>java.lang.IllegalArgumentException: Invalid format: "2013-10-17 19:00:02,059+0200" is malformed at " 19:00:02,059+0200", :level=>:warn}
我認爲:
中的偏移量丟失。但是,我怎麼能做到這一點,沒有所有的手動嘗試和錯誤?難道我只是說打印iso8601與時區和解析ISO8601與時區?