Sha256: dfb263fff396119aa534082cbbb7e5124ef7053745917ddd3f23d2aa613a962b

Contents?: true

Size: 1.48 KB

Versions: 3

Compression:

Stored size: 1.48 KB

Contents

module Theotokos
  module Configuration

    class AppLogger
    
      @@appenders = []
    
      def self.add_stdout_logger
        Logging.appenders.stdout(
          :level => ENV['logger.stdout.level'].to_sym,
          :layout => Logging::Layouts::Pattern.new(:date_pattern => ENV['logger.stdout.layout.date_pattern'], :pattern => ENV['logger.stdout.layout.pattern'])
        )
        
        @@appenders << 'stdout' unless @@appenders.include? 'stdout'
      end
      
      def self.add_rolling_file_logger
        dir = File.dirname ENV['logger.rolling_file.file']
        FileUtils.mkdir_p dir unless File.exist? dir
        
        file = ENV['logger.rolling_file.file'].dup
        file << ".#{Time.now.strftime('%Y-%m-%d')}" unless ENV['logger.rolling_file.file.append_date'] == 'false'
        
        Logging.appenders.rolling_file(
          file, :level => ENV['logger.rolling_file.level'].to_sym,
          :layout => Logging::Layouts::Pattern.new(:date_pattern => ENV['logger.rolling_file.date_pattern'],
          :pattern => ENV['logger.rolling_file.pattern'])
        )
        
        @@appenders << file unless @@appenders.include? file
      end
      
      def self.create_logger(source = nil)
        if @@appenders.empty?
          puts 'WARNING! There is no appender specified.'
          return nil
        end
        
        logger = Logging.logger[source ||= self]
        logger.add_appenders @@appenders
        
        return logger
      end
    
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
theotokos-0.1.3 lib/config/app_logger.rb
theotokos-0.1.2 lib/config/app_logger.rb
theotokos-0.1.1 lib/config/app_logger.rb