diff --git a/lib/logstash/event.rb b/lib/logstash/event.rb index 4bb31475e..7ea3cf31e 100644 --- a/lib/logstash/event.rb +++ b/lib/logstash/event.rb @@ -70,7 +70,16 @@ class LogStash::Event # field-related access public - def [](key); @data["@fields"][key] end # def [] + def [](key) + # If the key isn't in fields and it starts with an "@" sign, get it out of data instead of fields + if ! @data["@fields"].has_key?(key) and key.slice(0,1) == "@" + @data[key] + # Exists in @fields (returns value) or doesn't start with "@" (return null) + else + @data["@fields"][key] + end + end # def [] + def []=(key, value); @data["@fields"][key] = value end # def []= def fields; return @data["@fields"] end # def fields