Class Dsadmin::LogFormatters::XMLFormatter
In: lib/dsadmin/log_formatters.rb
Parent: MessageFormatter

Log formatter for XML logfiles

Methods

Included Modules

Dsadmin::XMLTools

Public Instance methods

[Source]

     # File lib/dsadmin/log_formatters.rb, line 169
169:       def doc_footer
170:          "</log>"
171:       end

[Source]

     # 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.

[Source]

     # 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

[Source]

     # File lib/dsadmin/log_formatters.rb, line 174
174:       def format_id
175:         :xml
176:       end

[Validate]