Methods
Public Class methods
[ show source ]
# File lib/phusion_passenger/debug_logging.rb, line 55
55: def self._log_device
56: return @@log_device
57: end
[ show source ]
# File lib/phusion_passenger/debug_logging.rb, line 34
34: def self.included(klass)
35: klass.class_eval do
36: private :debug
37: private :trace
38: end
39: end
[ show source ]
# File lib/phusion_passenger/debug_logging.rb, line 45
45: def self.log_file=(filename)
46: if filename && filename.empty?
47: @@log_filename = nil
48: else
49: @@log_filename = filename
50: end
51: @@log_device.close if @@log_device && !@@log_device.closed?
52: @@log_device = nil
53: end
[ show source ]
# File lib/phusion_passenger/debug_logging.rb, line 41
41: def self.log_level=(level)
42: @@log_level = level
43: end
[ show source ]
# File lib/phusion_passenger/debug_logging.rb, line 59
59: def self.stderr_evaluator=(block)
60: if block
61: @@stderr_evaluator = block
62: else
63: @@stderr_evaluator = lambda { STDERR }
64: end
65: end
Public Instance methods
[ show source ]
# File lib/phusion_passenger/debug_logging.rb, line 77
77: def debug(message)
78: trace(1, message, 1)
79: end
[ show source ]
# File lib/phusion_passenger/debug_logging.rb, line 67
67: def error(message)
68: trace(-1, message, 1)
69: end
[ show source ]
# File lib/phusion_passenger/debug_logging.rb, line 82
82: def trace(level, message, nesting_level = 0)
83: if @@log_level >= level
84: if @@log_filename
85: if !@@log_device || @@log_device.closed?
86: @@log_device = File.open(@@log_filename, "a")
87: end
88: output = @@log_device
89: else
90: output = @@stderr_evaluator.call
91: end
92: location = caller[nesting_level].sub(/.*phusion_passenger\//, '')
93: location.sub!(/(.*):.*/, '\1')
94: now = Time.now
95: time_str = now.strftime("%Y-%m-%d %H:%M:%S.")
96: time_str << sprintf("%03d", now.usec / 1000)
97: output.write("[ pid=#{$$} thr=#{Thread.current.object_id} file=#{location} time=#{time_str} ]: #{message}\n")
98: output.flush
99: end
100: end
[ show source ]
# File lib/phusion_passenger/debug_logging.rb, line 72
72: def warn(message)
73: trace(0, message, 1)
74: end