Sha256: 2a03ef8b61b4e1db74a70b6eb8bd99c8a196fd42b4a8b2d669b4694be1fe3867

Contents?: true

Size: 1.46 KB

Versions: 20

Compression:

Stored size: 1.46 KB

Contents

require "logger"

module MCollective
  module Logger
    # Impliments a file based logger using the standard ruby logger class
    #
    # To configure you should set:
    #
    #   - config.logfile
    #   - config.keeplogs defaults to 2097152
    #   - config.max_log_size defaults to 5
    class File_logger < Base
      def start
        config = Config.instance

        @logger = ::Logger.new(config.logfile, config.keeplogs, config.max_log_size)
        @logger.formatter = ::Logger::Formatter.new

        set_level(config.loglevel.to_sym)
      end

      def set_logging_level(level) # rubocop:disable Naming/AccessorMethodName
        @logger.level = map_level(level)
      rescue Exception => e # rubocop:disable Lint/RescueException
        @logger.level = ::Logger::DEBUG
        log(:error, "", "Could not set logging to #{level} using debug instead: #{e.class} #{e}")
      end

      def valid_levels
        {:info => ::Logger::INFO,
         :warn => ::Logger::WARN,
         :debug => ::Logger::DEBUG,
         :fatal => ::Logger::FATAL,
         :error => ::Logger::ERROR}
      end

      def log(level, from, msg)
        @logger.add(map_level(level)) { "#{from} #{msg}" }
      rescue
        # if this fails we probably cant show the user output at all,
        # STDERR it as last resort
        warn("#{level}: #{msg}")
      end

      def reopen
        level = @logger.level
        @logger.close
        start
        @logger.level = level
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
choria-mcorpc-support-2.26.5 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.26.4 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.26.3 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.26.2 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.26.1 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.26.0 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.25.3 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.25.2 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.25.1 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.25.0 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.24.4 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.24.3 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.24.2 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.24.1 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.24.0 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.23.3 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.23.2 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.23.1 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.23.0 lib/mcollective/logger/file_logger.rb
choria-mcorpc-support-2.23.0.pre lib/mcollective/logger/file_logger.rb