Skip to content

Instantly share code, notes, and snippets.

@elchingon
Last active March 12, 2018 23:38
Show Gist options
  • Save elchingon/8d0449f3483f246c01efef9bf65bda4b to your computer and use it in GitHub Desktop.
Save elchingon/8d0449f3483f246c01efef9bf65bda4b to your computer and use it in GitHub Desktop.
Logger class that will allow custom logger name within instance and class methods of other ruby classes.
# include in Ruby / Active Record class
#
# include MethodLogger
# logger_name("ticket_logger")
#
# use as a standard rails logger
# ticket_logger.info(" Events Processed: #{events_processed}")
# ticket_logger.error(e.inspect)
#
# TODO
# - turn into a gem
# - Add specs
# - add multiple logger filename support within one class
#
# add as a file in app/models/method_logger.rb
module MethodLogger
extend ActiveSupport::Concern
def logger logname = nil
logfile_name = logger_name logname
@logger ||= Logger.new("#{Rails.root}/log/#{logfile_name}.log")
end
def logger_name logfile_name = nil
logfile_name ||= "#{Rails.env}"
logfile_name
end
module ClassMethods
def logger
@logger ||= Logger.new("#{Rails.root}/log/#{@logfile_name}.log")
end
private
def logger_name logfile_name = nil
logfile_name ||= "#{Rails.env}"
@logfile_name = logfile_name
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment