class PiscinaLogger
Attributes
configuration[RW]
Public Class Methods
configure() { |configuration| ... }
click to toggle source
Configure!
# File lib/piscina/piscina_logger.rb, line 55 def self.configure self.configuration ||= Configuration.new yield(configuration) end
construct_path_to_log(log_name)
click to toggle source
# File lib/piscina/piscina_logger.rb, line 29 def self.construct_path_to_log(log_name) raise "No logging directory defined" unless PiscinaLogger.configuration.log_directory log_dir = PiscinaLogger.configuration.log_directory File.join(log_dir, "#{log_name}_piscina.log") end
create_logger(log_name)
click to toggle source
# File lib/piscina/piscina_logger.rb, line 16 def self.create_logger(log_name) log_path = construct_path_to_log(log_name) logger = Logger.new(log_path, 'daily') logger.formatter = proc do |severity, datetime, progname, msg| "#{severity} [#{datetime.strftime('%Y-%m-%d %H:%M:%S.%L')}]: #{msg}\n" end logger.level = PiscinaLogger.configuration.logging_level logger end
new(log_name)
click to toggle source
# File lib/piscina/piscina_logger.rb, line 8 def initialize(log_name) # Create a buffered pool of size one that will handle writing to the logs @thread_pool = Executors.newFixedThreadPool(1) # Creates a standard Ruby Logger @logger = PiscinaLogger.create_logger(log_name) end
Public Instance Methods
shutdown()
click to toggle source
# File lib/piscina/piscina_logger.rb, line 48 def shutdown # TODO wait for pool to close down before closing logger @thread_pool.shutdown @logger.close end
write(message, level)
click to toggle source
# File lib/piscina/piscina_logger.rb, line 36 def write(message, level) @thread_pool.execute do @logger.send(level, message) end end