我正在输出为CSV,我希望我的日期采用ISO8601格式,例如2014-04-02T19:21:36.292Z
,但我会在我的csv中获取Mar 27 2014 17:56:33
等日期。
我可以创建第二个中间字符串变量来进行格式化,但它会产生相同的结果。
我看到Logstash中有一个“sprintf”函数,但似乎你可以做EITHER变量引用或日期格式(我假设它会得到当前的系统日期时间),但我不认为你可以做到。换句话说,我认为它不允许你将日期格式应用于现有的日期变量,或者如果它存在,我不确定语法是什么。
Google和堆栈上存在大量错误命中,但都是关于解析。
具有讽刺意味的是,stdout恰好使用stdout { debug => true codec => "rubydebug"}
以我想要的格式输出。也许这可能在某种程度上有助于我的情况,不确定?虽然其他人可能想要一些其他任意格式。
答案 0 :(得分:1)
试试这个。添加新的"日期"然后输出到csv。
filter {
ruby {
code => '
require "time"
event["date"] = Time.parse(event["@timestamp"].to_s).iso8601;
'
}
}