Sha256: a92b8c18a3663f7a884660bd346a1b6e8d517bd4bf9f28402a643012a1a3d35d

Contents?: true

Size: 1.27 KB

Versions: 20

Compression:

Stored size: 1.27 KB

Contents

module MCollective
  module Logger
    # Implements a syslog based logger using the standard ruby syslog class
    class Syslog_logger < Base
      require "syslog"

      include Syslog::Constants

      def start
        config = Config.instance

        facility = syslog_facility(config.logfacility)
        level = config.loglevel.to_sym

        Syslog.close if Syslog.opened?
        Syslog.open(File.basename($0), 3, facility)

        set_level(level)
      end

      def syslog_facility(facility)
        Syslog.const_get("LOG_#{facility.upcase}")
      rescue NameError
        warn "Invalid syslog facility #{facility} supplied, reverting to USER"
        Syslog::LOG_USER
      end

      def set_logging_level(level) # rubocop:disable Naming/AccessorMethodName
        # noop
      end

      def valid_levels
        {:info => :info,
         :warn => :warning,
         :debug => :debug,
         :fatal => :crit,
         :error => :err}
      end

      def log(level, from, msg)
        Syslog.send(map_level(level), "#{from} #{msg}") if @known_levels.index(level) >= @known_levels.index(@active_level)
      rescue
        # if this fails we probably cant show the user output at all,
        # STDERR it as last resort
        warn("#{level}: #{msg}")
      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/syslog_logger.rb
choria-mcorpc-support-2.26.4 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.26.3 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.26.2 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.26.1 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.26.0 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.25.3 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.25.2 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.25.1 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.25.0 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.24.4 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.24.3 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.24.2 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.24.1 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.24.0 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.23.3 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.23.2 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.23.1 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.23.0 lib/mcollective/logger/syslog_logger.rb
choria-mcorpc-support-2.23.0.pre lib/mcollective/logger/syslog_logger.rb