Method: DangoLogger#initialize
- Defined in:
- lib/dango/dango_logger.rb
#initialize(log_file, log_shift_age, log_max_size, log_level) ⇒ DangoLogger
Returns a new instance of DangoLogger.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/dango/dango_logger.rb', line 31 def initialize(log_file, log_shift_age, log_max_size, log_level) @log_file = log_file @log_shift_age = log_shift_age @log_max_size = log_max_size @log_level = log_level if @log_file && @log_file != "" # 出力ファイルが空なら何もしない @is_logging = true else @is_logging = false end if @is_logging log_dir = File.dirname(@log_file) Dir.mkdir(log_dir) if !File.exist?(log_dir) @dango_logger = Logger.new(@log_file, @log_shift_age, @log_max_size) @dango_logger.level = @log_level def @dango_logger.(severity, , msg, progname) now = Time.now now_str = now.strftime("%Y-%m-%d %H:%M:%S.") << "%06d" % now.usec "%1.1s, [%s] %s:%s\n" % [severity, now_str, msg, progname] end @dango_logger.add(1, "--- start log ---", "logger") @log_queue = Queue.new Thread.start do # logger作成 loop do begin data = @log_queue.pop @dango_logger.add(data[:sev], data[:msg], data[:prg]) rescue Exception puts "dango_logger:#{($!, 'u')}" open("dango_logger.log", "ab"){|fh| fh.puts "#{Time.now_to_s}:#{($!, 'u')}"} exit! # ログのトラブルが出た場合は強制終了 end end end # Thread.end end end |