- use DateTime.parse to ensure any ISO8601 format dates rae in our common

format. This may not be necessary in the long run.
This commit is contained in:
Jordan Sissel 2010-11-09 09:58:28 +00:00
parent 5a8a350ef3
commit 37488a44fc

View file

@ -40,16 +40,17 @@ class LogStash::Filters::Date < LogStash::Filters::Base
fieldvalue = event.fields[field]
fieldvalue = [fieldvalue] if fieldvalue.is_a?(String)
fieldvalue.each do |value|
if format == "ISO8601"
event.timestamp = value
else
begin
time = DateTime.strptime(value, format)
event.timestamp = LogStash::Time.to_iso8601(time)
@logger.debug "Parsed #{value.inspect} as #{event.timestamp}"
rescue
@logger.warn "Failed parsing date #{value.inspect} from field #{field} with format #{format.inspect}: #{$!}"
begin
case format
when "ISO8601"
time = DateTime.parse(value)
else
time = DateTime.strptime(value, format)
end
event.timestamp = LogStash::Time.to_iso8601(time)
@logger.debug "Parsed #{value.inspect} as #{event.timestamp}"
rescue
@logger.warn "Failed parsing date #{value.inspect} from field #{field} with format #{format.inspect}: #{$!}"
end
end # fieldvalue.each
end # if this event has a field we expect to be a timestamp