329: def handle(msg)
330: unless msg.is_a?(String) or msg.remote
331: unless defined? @hostname
332: @hostname = Facter["hostname"].value
333: end
334: unless defined? @domain
335: @domain = Facter["domain"].value
336: if @domain
337: @hostname += "." + @domain
338: end
339: end
340: if msg.source =~ /^\//
341: msg.source = @hostname + ":" + msg.source
342: elsif msg.source == "Puppet"
343: msg.source = @hostname + " " + msg.source
344: else
345: msg.source = @hostname + " " + msg.source
346: end
347: begin
348:
349:
350:
351: begin
352: tmp = CGI.escape(YAML.dump(msg))
353: rescue => detail
354: puts "Could not dump: %s" % detail.to_s
355: return
356: end
357:
358: @driver.addlog(tmp)
359: rescue => detail
360: if Puppet[:trace]
361: puts detail.backtrace
362: end
363: Puppet.err detail
364: Puppet::Util::Log.close(self)
365: end
366: end
367: end