Class: DangoLogger
- Includes:
- ErrorMessage
- Defined in:
- lib/dango/dango_logger.rb
Overview
Dango用のロガークラス
Instance Method Summary collapse
- #add(sev, msg = "") ⇒ Object
- #debug(msg = "") ⇒ Object
- #error(msg = "") ⇒ Object
- #fatal(msg = "") ⇒ Object
- #info(msg = "") ⇒ Object
-
#initialize(log_file, log_shift_age, log_max_size, log_level) ⇒ DangoLogger
constructor
A new instance of DangoLogger.
- #unknown(msg = "") ⇒ Object
- #warn(msg = "") ⇒ Object
Methods included from ErrorMessage
Constructor Details
#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 |
Instance Method Details
#add(sev, msg = "") ⇒ Object
110 111 112 113 114 |
# File 'lib/dango/dango_logger.rb', line 110 def add(sev, msg = "") if @is_logging @log_queue.push({:sev=>sev, :msg=>str, :prg=>Thread.current.object_id}) end end |
#debug(msg = "") ⇒ Object
74 75 76 77 78 |
# File 'lib/dango/dango_logger.rb', line 74 def debug(msg = "") if @is_logging @log_queue.push({:sev=>0, :msg=>msg, :prg=>Thread.current.object_id}) end end |
#error(msg = "") ⇒ Object
92 93 94 95 96 |
# File 'lib/dango/dango_logger.rb', line 92 def error(msg = "") if @is_logging @log_queue.push({:sev=>3, :msg=>msg, :prg=>Thread.current.object_id}) end end |
#fatal(msg = "") ⇒ Object
98 99 100 101 102 |
# File 'lib/dango/dango_logger.rb', line 98 def fatal(msg = "") if @is_logging @log_queue.push({:sev=>4, :msg=>msg, :prg=>Thread.current.object_id}) end end |
#info(msg = "") ⇒ Object
80 81 82 83 84 |
# File 'lib/dango/dango_logger.rb', line 80 def info(msg = "") if @is_logging @log_queue.push({:sev=>1, :msg=>msg, :prg=>Thread.current.object_id}) end end |
#unknown(msg = "") ⇒ Object
104 105 106 107 108 |
# File 'lib/dango/dango_logger.rb', line 104 def unknown(msg = "") if @is_logging @log_queue.push({:sev=>5, :msg=>msg, :prg=>Thread.current.object_id}) end end |
#warn(msg = "") ⇒ Object
86 87 88 89 90 |
# File 'lib/dango/dango_logger.rb', line 86 def warn(msg = "") if @is_logging @log_queue.push({:sev=>2, :msg=>msg, :prg=>Thread.current.object_id}) end end |