def format(logevent)
logger = logevent.fullname.gsub('::', '.')
timestamp = (Time.now.to_f * 1000).to_i
level = LNAMES[logevent.level]
message = format_object(logevent.data)
exception = message if logevent.data.kind_of? Exception
file, line, method = parse_caller(logevent.tracer[0]) if logevent.tracer
builder = Builder::XmlMarkup.new
xml = builder.log4j :event, :logger => logger,
:timestamp => timestamp,
:level => level,
:thread => '' do |e|
e.log4j :NDC, NDC.get
e.log4j :message, message
e.log4j :throwable, exception if exception
e.log4j :locationInfo, :class => '',
:method => method,
:file => file,
:line => line
e.log4j :properties do |p|
MDC.get_context.each do |key, value|
p.log4j :data, :name => key, :value => value
end
end
end
xml
end