Class: Logue::Logger
- Inherits:
-
Object
- Object
- Logue::Logger
- Includes:
- ColorLog, LegacyLogger
- Defined in:
- lib/logue/logger.rb
Instance Attribute Summary collapse
-
#filter ⇒ Object
Returns the value of attribute filter.
-
#format ⇒ Object
Returns the value of attribute format.
-
#level ⇒ Object
Returns the value of attribute level.
-
#writer ⇒ Object
Returns the value of attribute writer.
Instance Method Summary collapse
- #debug(msg = "", obj = nil, classname: nil, &blk) ⇒ Object
- #error(msg = "", obj = nil, classname: nil, &blk) ⇒ Object
- #fatal(msg = "", obj = nil, classname: nil, &blk) ⇒ Object
- #info(msg = "", obj = nil, classname: nil, &blk) ⇒ Object
-
#initialize(format: LocationFormat.new, level: Level::WARN, filter: Filter.new, writer: Writer.new) ⇒ Logger
constructor
A new instance of Logger.
-
#log(msg = "", obj = nil, level: Level::DEBUG, classname: nil, &blk) ⇒ Object
Logs the given message.
- #log_frame(frame, msg, obj, classname: nil, level: nil, &blk) ⇒ Object
- #log_frames(msg, obj = nil, classname: nil, level: nil, nframes: -1,, &blk) ⇒ Object
-
#outfile=(f) ⇒ Object
Assigns output to a file with the given name.
- #print_frame(frame, msg, obj, classname: nil, level: nil, &blk) ⇒ Object
- #quiet ⇒ Object
- #quiet=(b) ⇒ Object
- #reset(format: LocationFormat.new, level: FATAL, filter: Filter.new, writer: Writer.new) ⇒ Object
-
#set_widths(file, line, method) ⇒ Object
Creates a printf format for the given widths, for aligning output.
-
#stack(msg = "", obj = nil, level: Level::DEBUG, classname: nil, &blk) ⇒ Object
Shows the current stack.
- #verbose ⇒ Object
- #verbose=(v) ⇒ Object
- #warn(msg = "", obj = nil, classname: nil, &blk) ⇒ Object
Methods included from ColorLog
#add_color_method, color_method_source, #method_missing, #methods, #respond_to?, #valid_colors
Methods included from LegacyLogger
#colorize_line, #colorize_line=, #ignore_class, #ignore_file, #ignore_method, #log_class, #log_file, #log_method, #output, #output=, #set_color, #set_default_widths, #trim=
Constructor Details
#initialize(format: LocationFormat.new, level: Level::WARN, filter: Filter.new, writer: Writer.new) ⇒ Logger
Returns a new instance of Logger.
40 41 42 |
# File 'lib/logue/logger.rb', line 40 def initialize format: LocationFormat.new, level: Level::WARN, filter: Filter.new, writer: Writer.new reset format: format, level: level, filter: filter, writer: writer end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Logue::ColorLog
Instance Attribute Details
#filter ⇒ Object
Returns the value of attribute filter.
37 38 39 |
# File 'lib/logue/logger.rb', line 37 def filter @filter end |
#format ⇒ Object
Returns the value of attribute format.
36 37 38 |
# File 'lib/logue/logger.rb', line 36 def format @format end |
#level ⇒ Object
Returns the value of attribute level.
35 36 37 |
# File 'lib/logue/logger.rb', line 35 def level @level end |
#writer ⇒ Object
Returns the value of attribute writer.
38 39 40 |
# File 'lib/logue/logger.rb', line 38 def writer @writer end |
Instance Method Details
#debug(msg = "", obj = nil, classname: nil, &blk) ⇒ Object
87 88 89 |
# File 'lib/logue/logger.rb', line 87 def debug msg = "", obj = nil, classname: nil, &blk log msg, obj, level: Level::DEBUG, classname: classname, &blk end |
#error(msg = "", obj = nil, classname: nil, &blk) ⇒ Object
99 100 101 |
# File 'lib/logue/logger.rb', line 99 def error msg = "", obj = nil, classname: nil, &blk log msg, obj, level: Level::ERROR, classname: classname, &blk end |
#fatal(msg = "", obj = nil, classname: nil, &blk) ⇒ Object
103 104 105 |
# File 'lib/logue/logger.rb', line 103 def fatal msg = "", obj = nil, classname: nil, &blk log msg, obj, level: Level::FATAL, classname: classname, &blk end |
#info(msg = "", obj = nil, classname: nil, &blk) ⇒ Object
91 92 93 |
# File 'lib/logue/logger.rb', line 91 def info msg = "", obj = nil, classname: nil, &blk log msg, obj, level: Level::INFO, classname: classname, &blk end |
#log(msg = "", obj = nil, level: Level::DEBUG, classname: nil, &blk) ⇒ Object
Logs the given message.
108 109 110 |
# File 'lib/logue/logger.rb', line 108 def log msg = "", obj = nil, level: Level::DEBUG, classname: nil, &blk log_frames msg, obj, classname: classname, level: level, nframes: 0, &blk end |
#log_frame(frame, msg, obj, classname: nil, level: nil, &blk) ⇒ Object
129 130 131 132 133 |
# File 'lib/logue/logger.rb', line 129 def log_frame frame, msg, obj, classname: nil, level: nil, &blk if @filter.log? frame.path, classname, frame.method print_frame frame, msg, obj, classname: classname, level: level, &blk end end |
#log_frames(msg, obj = nil, classname: nil, level: nil, nframes: -1,, &blk) ⇒ Object
117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/logue/logger.rb', line 117 def log_frames msg, obj = nil, classname: nil, level: nil, nframes: -1, &blk if level >= @level stack = Stack.new stack.filtered[0 .. nframes].each do |frame| log_frame frame, msg, obj, classname: classname, level: level, &blk classname = nil msg = "" obj = nil end end end |
#outfile=(f) ⇒ Object
Assigns output to a file with the given name. Returns the file; the client is responsible for closing it.
76 77 78 79 |
# File 'lib/logue/logger.rb', line 76 def outfile= f io = f.kind_of?(IO) ? f : File.new(f, "w") @writer.output = io end |
#print_frame(frame, msg, obj, classname: nil, level: nil, &blk) ⇒ Object
135 136 137 138 139 140 |
# File 'lib/logue/logger.rb', line 135 def print_frame frame, msg, obj, classname: nil, level: nil, &blk loc = Location.new frame.path, frame.line, classname, frame.method line = Line.new loc, msg, obj, &blk lstr = line.format @format @writer.print lstr, level end |
#quiet=(b) ⇒ Object
70 71 72 |
# File 'lib/logue/logger.rb', line 70 def quiet= b @level = b ? Level::WARN : Level::DEBUG end |
#reset(format: LocationFormat.new, level: FATAL, filter: Filter.new, writer: Writer.new) ⇒ Object
59 60 61 62 63 64 |
# File 'lib/logue/logger.rb', line 59 def reset format: LocationFormat.new, level: FATAL, filter: Filter.new, writer: Writer.new @level = level @filter = filter @format = format @writer = writer end |
#set_widths(file, line, method) ⇒ Object
Creates a printf format for the given widths, for aligning output. To lead lines with zeros (e.g., “00317”) the line argument must be a string, with leading zeros, not an integer.
83 84 85 |
# File 'lib/logue/logger.rb', line 83 def set_widths file, line, method @format = LocationFormat.new file: file, line: line, method: method end |
#stack(msg = "", obj = nil, level: Level::DEBUG, classname: nil, &blk) ⇒ Object
Shows the current stack.
113 114 115 |
# File 'lib/logue/logger.rb', line 113 def stack msg = "", obj = nil, level: Level::DEBUG, classname: nil, &blk log_frames msg, obj, classname: classname, level: level, nframes: -1, &blk end |
#verbose ⇒ Object
55 56 57 |
# File 'lib/logue/logger.rb', line 55 def verbose @level <= Level::DEBUG end |