Class: Xlog::Xlogger
Instance Attribute Summary collapse
-
#app_name ⇒ Object
Returns the value of attribute app_name.
-
#app_root ⇒ Object
Returns the value of attribute app_root.
-
#base_logger ⇒ Object
Returns the value of attribute base_logger.
Instance Method Summary collapse
- #and_raise_error(e, message, data, tags, file_prefix: nil) ⇒ Object
- #custom_logger=(logger) ⇒ Object
-
#error(e, message, data, tags, file_prefix: nil) ⇒ Object
do NOT refactor error and and_raise_error.
- #info(message, data, tags, file_prefix: nil) ⇒ Object
-
#initialize ⇒ Xlogger
constructor
A new instance of Xlogger.
- #log(type, text, tags, file_prefix: nil) ⇒ Object
- #logger_for(file_prefix) ⇒ Object
- #warn(message, data, tags, file_prefix: nil) ⇒ Object
Constructor Details
#initialize ⇒ Xlogger
Returns a new instance of Xlogger.
9 10 11 12 13 14 15 |
# File 'lib/xlog/xlogger.rb', line 9 def initialize @base_logger = ActiveSupport::TaggedLogging.new(Logger.new("log/xlog_#{Rails.env}.log", 'weekly')) @app_name = Rails.application.class.to_s.split('::')[0].underscore @app_root = Rails.root.to_s @folder_names_to_remove = Dir.glob('app/*').map { |f| f.gsub('app/', '') } end |
Instance Attribute Details
#app_name ⇒ Object
Returns the value of attribute app_name.
7 8 9 |
# File 'lib/xlog/xlogger.rb', line 7 def app_name @app_name end |
#app_root ⇒ Object
Returns the value of attribute app_root.
7 8 9 |
# File 'lib/xlog/xlogger.rb', line 7 def app_root @app_root end |
#base_logger ⇒ Object
Returns the value of attribute base_logger.
7 8 9 |
# File 'lib/xlog/xlogger.rb', line 7 def base_logger @base_logger end |
Instance Method Details
#and_raise_error(e, message, data, tags, file_prefix: nil) ⇒ Object
37 38 39 40 |
# File 'lib/xlog/xlogger.rb', line 37 def and_raise_error(e, , data, , file_prefix: nil) log(:error, "#{e.class}: #{e.try(:message)}. #{newline} #{compose_log(message, data)} #{newline} Error backtrace: #{newline} #{backtrace(e)}", , file_prefix: file_prefix) .present? ? raise(e, ) : raise(e) end |
#custom_logger=(logger) ⇒ Object
42 43 44 |
# File 'lib/xlog/xlogger.rb', line 42 def custom_logger=(logger) @base_logger = ActiveSupport::TaggedLogging.new(logger) end |
#error(e, message, data, tags, file_prefix: nil) ⇒ Object
do NOT refactor error and and_raise_error
32 33 34 35 |
# File 'lib/xlog/xlogger.rb', line 32 def error(e, , data, , file_prefix: nil) # they MUST BE NOT DRY in order to log correct backtrace log(:error, "#{e.class}: #{e.try(:message)}. \n #{compose_log(message, data)} \n Error backtrace: \n#{backtrace(e)}", , file_prefix: file_prefix) end |
#info(message, data, tags, file_prefix: nil) ⇒ Object
23 24 25 |
# File 'lib/xlog/xlogger.rb', line 23 def info(, data, , file_prefix: nil) log(:info, compose_log(, data), , file_prefix: file_prefix) end |
#log(type, text, tags, file_prefix: nil) ⇒ Object
17 18 19 20 21 |
# File 'lib/xlog/xlogger.rb', line 17 def log(type, text, , file_prefix: nil) logger = logger_for(file_prefix) = [time_stamp, called_from(type), type] + Array.wrap() logger.tagged(.compact) { logger.send(type, text) } end |
#logger_for(file_prefix) ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/xlog/xlogger.rb', line 46 def logger_for(file_prefix) return @base_logger if file_prefix.blank? ActiveSupport::TaggedLogging.new( Logger.new("log/#{['xlog', file_prefix, Rails.env].compact.join('_')}.log", 'weekly') ) end |
#warn(message, data, tags, file_prefix: nil) ⇒ Object
27 28 29 |
# File 'lib/xlog/xlogger.rb', line 27 def warn(, data, , file_prefix: nil) log(:warn, compose_log(, data), , file_prefix: file_prefix) end |