Last active
March 12, 2018 23:38
-
-
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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