| Class | Dsadmin::LogFormatters::XMLFormatter |
| In: |
lib/dsadmin/log_formatters.rb
|
| Parent: | MessageFormatter |
Log formatter for XML logfiles
# File lib/dsadmin/log_formatters.rb, line 163
163: def doc_header
164: "<?xml version='1.0' standalone='yes' encoding='UTF-8'?>\n" +
165: "<log>\n"
166: end
Format a given message for the given log level.
aMessage may be a String, an Exception or anything that responds to to_s.
# File lib/dsadmin/log_formatters.rb, line 183
183: def format(message, level, request = Thread.current[:request])
184: doc = REXML::Document.new("<logrecord/>")
185: relem = doc.root
186:
187: relem.add_element(simpleElem("level", LogFormatters.level2string(level)))
188: relem.add_element(simpleElem("time", Dsadmin::System.instance.time2string))
189: relem.add_element(simpleElem("euid", Dsadmin::System.instance.username))
190:
191: if(Thread.current[:auth_username])
192: relem.add_element(simpleElem("user", Thread.current[:auth_username]))
193: end
194:
195: if (message.kind_of? Exception)
196: relem.add_element(simpleElem("exception",
197: message.class.name))
198: relem.add_element(simpleElem("message",
199: message.message))
200: relem.add_element(simpleElem("backtrace",
201: message.backtrace.join("\n")))
202: else
203: relem.add_element(simpleElem("message", message.to_s))
204: end
205:
206: if(request)
207: relem.add_element(simpleElem("request-uri", LogFormatters.uri_from_request(request)))
208: if(request.respond_to? :to_yaml)
209: relem.add_element(simpleElem("request", request.to_yaml))
210: end
211: end
212:
213: return doc.to_s + "\n"
214: end