Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Adds json formatted ouput for Puppet applications
# Adds json formatted ouput for Puppet applications.
# Usage: puppet agent --logdest json
# Currently there's no way to load this as a plugin, see #6522. Appending this
# method to puppet/util/log/destinations.rb works. Meh.
# Would also be nice if Puppet::Util::Log had an #attributes method for
# accessors instead of instance_variable hacks.
Puppet::Util::Log.newdesttype :json do
def handle(msg)
message = {}
msg.instance_variables.each {|v| message[v.sub("@","")] = msg.instance_variable_get(v) }
puts message.to_pson
end
end

There's a very usable json output mode in puppet now --logdest=logstash_event will do this without requiring patching (although it comes with a bit of boilerplate intended for logstash).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment