# -*- mode: ruby; -*- # # syslog # # This agent is invoked from Client but 'init.cpi'. # # $Author: knu $ # $Date: 2001/01/31 06:03:23 $ # # Copyright (C) 1998-2000 Hiroshi IGARASHI # agent = IRC::PassiveAgent::new("Syslog") class << agent def start(client) super @logfile = File.open("log/syslog", "a+") @logfile.sync = true end def stop super #@logfile = nil end def notifyLog(log) unless @logfile.nil? buf = log.timestamp.strftime("%m/%d %H:%M") case log.sender when IRC::Connection, IRC::Client case log.message when IRC::Message buf << " <#{log.ident}> #{log.message.inspect}" else buf << " <#{log.ident}> #{log.message}" end when IRC::Agent if log.ident.nil? buf << " [#{log.sender.nick}] #{log.message}" else buf << " [#{log.sender.nick}:#{log.ident}] #{log.message}" end end @logfile.lprintln(buf) end end end agent