Path: | lib/rbot/ircbot.rb |
Last Update: | Sun Jun 27 10:21:56 +0200 2010 |
# File lib/rbot/ircbot.rb, line 107 107: def debug(message=nil, who_pos=1) 108: rawlog(Logger::Severity::DEBUG, message, who_pos) 109: end
# File lib/rbot/ircbot.rb, line 119 119: def error(message=nil, who_pos=1) 120: rawlog(Logger::Severity::ERROR, message, who_pos) 121: end
# File lib/rbot/ircbot.rb, line 123 123: def fatal(message=nil, who_pos=1) 124: rawlog(Logger::Severity::FATAL, message, who_pos) 125: end
# File lib/rbot/ircbot.rb, line 72 72: def halt_logger 73: if $log_thread && $log_thread.alive? 74: $log_queue << nil 75: $log_thread.join 76: $log_thread = nil 77: end 78: end
# File lib/rbot/ircbot.rb, line 111 111: def log(message=nil, who_pos=1) 112: rawlog(Logger::Severity::INFO, message, who_pos) 113: end
# File lib/rbot/ircbot.rb, line 102 102: def log_session_end 103: $logger << "\n\n=== #{botclass} session ended on #{Time.now.strftime($dateformat)} ===\n\n" 104: $log_queue << nil 105: end
# File lib/rbot/ircbot.rb, line 97 97: def log_session_start 98: $logger << "\n\n=== #{botclass} session started on #{Time.now.strftime($dateformat)} ===\n\n" 99: restart_logger 100: end
# File lib/rbot/ircbot.rb, line 47 47: def rawlog(level, message=nil, who_pos=1) 48: call_stack = caller 49: if call_stack.length > who_pos 50: who = call_stack[who_pos].sub(%r{(?:.+)/([^/]+):(\d+)(:in .*)?}) { "#{$1}:#{$2}#{$3}" } 51: else 52: who = "(unknown)" 53: end 54: # Output each line. To distinguish between separate messages and multi-line 55: # messages originating at the same time, we blank #{who} after the first message 56: # is output. 57: # Also, we output strings as-is but for other objects we use pretty_inspect 58: case message 59: when String 60: str = message 61: else 62: str = message.pretty_inspect 63: end 64: qmsg = Array.new 65: str.each_line { |l| 66: qmsg.push [level, l.chomp, who] 67: who = ' ' * who.size 68: } 69: $log_queue.push qmsg 70: end
# File lib/rbot/ircbot.rb, line 82 82: def restart_logger(newlogger = false) 83: halt_logger 84: 85: $logger = newlogger if newlogger 86: 87: $log_thread = Thread.new do 88: ls = nil 89: while ls = $log_queue.pop 90: ls.each { |l| $logger.add(*l) } 91: end 92: end 93: end