Class: Steno::TaggedLogger
Overview
Provides a proxy that allows persistent user data
Instance Attribute Summary collapse
-
#proxied_logger ⇒ Object
readonly
Returns the value of attribute proxied_logger.
-
#user_data ⇒ Object
Returns the value of attribute user_data.
Class Method Summary collapse
-
.define_log_method(name) ⇒ Object
The following helpers are used to create a new scope for binding the log level.
- .define_logf_method(name) ⇒ Object
Instance Method Summary collapse
-
#initialize(proxied_logger, user_data = {}) ⇒ TaggedLogger
constructor
A new instance of TaggedLogger.
- #log(level_name, message = nil, user_data = nil, &blk) ⇒ Object
- #log_exception(ex, user_data = {}) ⇒ Object
- #method_missing(method, *args, &blk) ⇒ Object
- #tag(new_user_data = {}) ⇒ Object
Constructor Details
#initialize(proxied_logger, user_data = {}) ⇒ TaggedLogger
Returns a new instance of TaggedLogger.
32 33 34 35 |
# File 'lib/steno/tagged_logger.rb', line 32 def initialize(proxied_logger, user_data = {}) @proxied_logger = proxied_logger @user_data = user_data end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &blk) ⇒ Object
37 38 39 |
# File 'lib/steno/tagged_logger.rb', line 37 def method_missing(method, *args, &blk) @proxied_logger.send(method, *args, &blk) end |
Instance Attribute Details
#proxied_logger ⇒ Object (readonly)
Returns the value of attribute proxied_logger.
8 9 10 |
# File 'lib/steno/tagged_logger.rb', line 8 def proxied_logger @proxied_logger end |
#user_data ⇒ Object
Returns the value of attribute user_data.
9 10 11 |
# File 'lib/steno/tagged_logger.rb', line 9 def user_data @user_data end |
Class Method Details
.define_log_method(name) ⇒ Object
The following helpers are used to create a new scope for binding the log level.
15 16 17 |
# File 'lib/steno/tagged_logger.rb', line 15 def define_log_method(name) define_method(name) { |*args, &blk| log(name, *args, &blk) } end |
.define_logf_method(name) ⇒ Object
19 20 21 |
# File 'lib/steno/tagged_logger.rb', line 19 def define_logf_method(name) define_method(name.to_s + 'f') { |fmt, *args| log(name, fmt % args) } end |
Instance Method Details
#log(level_name, message = nil, user_data = nil, &blk) ⇒ Object
42 43 44 45 46 |
# File 'lib/steno/tagged_logger.rb', line 42 def log(level_name, = nil, user_data = nil, &blk) ud = @user_data.merge(user_data || {}) @proxied_logger.log(level_name, , ud, &blk) end |
#log_exception(ex, user_data = {}) ⇒ Object
49 50 51 52 53 |
# File 'lib/steno/tagged_logger.rb', line 49 def log_exception(ex, user_data = {}) ud = @user_data.merge(user_data || {}) @proxied_logger.log_exception(ex, ud) end |
#tag(new_user_data = {}) ⇒ Object
55 56 57 |
# File 'lib/steno/tagged_logger.rb', line 55 def tag(new_user_data = {}) Steno::TaggedLogger.new(proxied_logger, user_data.merge(new_user_data)) end |