lib/shared/logger_helper.rb in pushyd-0.7.1 vs lib/shared/logger_helper.rb in pushyd-0.8.0

- old
+ new

@@ -1,10 +1,39 @@ require "logger" module Shared module LoggerHelper + CONFIG_PATH = :path + def logfile config, pipe + # Disabled if no valid config + return nil unless config.is_a?(Hash) + + # Compute logfile and check if we can write there + logfile = File.expand_path(config[pipe].to_s, config[CONFIG_PATH].to_s) + + # Check that we'll be able to create logfiles + if File.exists?(logfile) + # File is there, is it writable ? + unless File.writable?(logfile) + puts "LoggerHelper [#{pipe}] disabled: file not writable [#{logfile}]" + return nil + end + else + # No file here, can we create it ? + logdir = File.dirname(logfile) + unless File.writable?(logdir) + puts "LoggerHelper [#{pipe}] disabled: directory not writable [#{logdir}]" + return nil + end + end + + # OK, return a clean file path + puts "LoggerHelper [#{pipe}] logging to [#{logfile}]" + return logfile + end + protected def log_info message, details = nil build_messages Logger::INFO, message, details end @@ -37,16 +66,10 @@ LOG_PREFIX_FORMAT % values.map(&:to_s) end def build_messages severity, message, details = nil messages = [] - # messages << "/---------------------------------------" - # messages << "severity: #{severity}" - # messages << "message: #{message.class}" - # messages << "details: #{details.class} #{details.inspect}" - # messages << "ARRAY(#{details.count})" if details.is_a? Array - # messages << "HASH(#{details.count})" if details.is_a? Hash prefix = build_prefix # Add main message messages << sprintf(LOG_MESSAGE_TEXT, prefix, message) if message @@ -63,16 +86,8 @@ # Return all that stuff # messages << "\\---------------------------------------" logger.add severity, messages end - - # def debug_lines lines, prefix = '' - # if lines.is_a? Array - # logger.debug lines.map{ |line| sprintf(LOG_MESSAGE_ARRAY, prefix, line) } - # elsif lines.is_a? Hash - # logger.debug lines.map{ |key, value| sprintf(LOG_MESSAGE_HASH, prefix, key, value) } - # end - # end end end