I want a dual logger so I have sub-classed Logger with this :
class Logging < Logger
def initialize(file, stdout=false)
@log_file = Logger(file)
@log_out = Logger(stdout) if stdout
end
#Override the logger’s methods to write to both stdout and file if
needed
end
How would I implement a global logger for the module and the main. The
logger would be initiated within the main and I’d want to pass it to the
module with the same parameters, given a module like this :
module A
def self.a
end
Anywhere inside the module I want to be able to do logger.info(str)
and it will log to same logger as initialized in main.
class c
def ca
end
end
end
On Oct 25, 2011, at 9:34 AM, Kassym D. wrote:
I want a dual logger so I have sub-classed Logger with this :
class Logging < Logger
def initialize(file, stdout=false)
@log_file = Logger(file)
@log_out = Logger(stdout) if stdout
end
#Override the logger’s methods to write to both stdout and file if
needed
end
Take a look at the “Logging” gem as it already support logging to
multiple destinations. The interface for logger objects is the same as
the core Ruby logger class.
docos => File: README — Documentation for logging (2.3.1)
source => GitHub - TwP/logging: A flexible logging library for use in Ruby programs based on the design of Java's log4j library.
How would I implement a global logger for the module and the main. The
logger would be initiated within the main and I’d want to pass it to the
module with the same parameters, given a module like this :
One trick you can use with the Logging framework is this
require ‘logging’
include Logging.globally
This will add a “logger” method to Object which will be inherited by
every object in your application. This will allow you to do call
“logger.info” within your module or any other class.
Blessings,
TwP