Module: Descope::Mixins::Logging
- Included in:
- Descope::Mixins
- Defined in:
- lib/descope/mixins/logging.rb
Overview
Module to provide logger.
Class Method Summary collapse
- .configure_logger_for(classname, level = 'info', project_id = nil) ⇒ Object
- .logger_for(classname, level, project_id = nil) ⇒ Object
Instance Method Summary collapse
Class Method Details
.configure_logger_for(classname, level = 'info', project_id = nil) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/descope/mixins/logging.rb', line 22 def configure_logger_for(classname, level = 'info', project_id = nil) logger = Logger.new(STDOUT) logger.level = Object.const_get("Logger::#{level.upcase}") logger.progname = classname # Adding Custom Formatter for Project ID logger.formatter = proc do |severity, datetime, progname, msg| project_info = project_id ? "PRID: #{project_id}" : "" "[#{datetime}] #{severity} #{project_info} #{progname}: #{msg}\n" end logger end |
.logger_for(classname, level, project_id = nil) ⇒ Object
17 18 19 20 |
# File 'lib/descope/mixins/logging.rb', line 17 def logger_for(classname, level, project_id = nil) key = "#{classname}-#{project_id}" @loggers[key] ||= configure_logger_for(classname, level, project_id) end |
Instance Method Details
#logger ⇒ Object
8 9 10 11 |
# File 'lib/descope/mixins/logging.rb', line 8 def logger # This is the magical bit that gets mixed into the other modules @logger ||= Logging.logger_for(self.class.name, 'info', @project_id) end |