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.
33 34 35 36 |
# File 'lib/steno/tagged_logger.rb', line 33 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
38 39 40 |
# File 'lib/steno/tagged_logger.rb', line 38 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.
9 10 11 |
# File 'lib/steno/tagged_logger.rb', line 9 def proxied_logger @proxied_logger end |
#user_data ⇒ Object
Returns the value of attribute user_data.
10 11 12 |
# File 'lib/steno/tagged_logger.rb', line 10 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.
16 17 18 |
# File 'lib/steno/tagged_logger.rb', line 16 def define_log_method(name) define_method(name) { |*args, &blk| log(name, *args, &blk) } end |
.define_logf_method(name) ⇒ Object
20 21 22 |
# File 'lib/steno/tagged_logger.rb', line 20 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
43 44 45 46 47 |
# File 'lib/steno/tagged_logger.rb', line 43 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
50 51 52 53 54 |
# File 'lib/steno/tagged_logger.rb', line 50 def log_exception(ex, user_data = {}) ud = @user_data.merge(user_data || {}) @proxied_logger.log_exception(ex, ud) end |
#tag(new_user_data = {}) ⇒ Object
56 57 58 |
# File 'lib/steno/tagged_logger.rb', line 56 def tag(new_user_data = {}) Steno::TaggedLogger.new(proxied_logger, user_data.merge(new_user_data)) end |