Sha256: 4b2c494329ac3569428e57199c86bfec1df4a163beaac57f120d30d7c45f16a1

Contents?: true

Size: 1.57 KB

Versions: 9

Compression:

Stored size: 1.57 KB

Contents

class Log < Logger
    SYSLOG_MIN_SEVERITY = Logger::WARN

    class << self

        # 'def [d|i|w|e|f] msg' for DEBUG INFO WARN ERROR FATAL
        Logger::Severity::constants.each do |severity|
            method_name = severity.to_s[0].downcase
            define_method(method_name) do |msg|
                log severity, msg
            end
        end

        def setup
            @syslog = Syslog::Logger.new "dns_one"
            @log_file = setfile "/var/log/dns_one.log"
            @logger = Logger.new @log_file
            @logger.level = Logger::INFO
        end

        def ruby_dns_logger
            l = Logger.new setfile("/var/log/dns_one_rubydns.log")
            l.level = Logger::WARN
            l
        end

        def exc e
            e e.desc
        end

        def logger
            @logger
        end

        def log_file_desc
            case @log_file
            when STDOUT
                'STDOUT'
            when STDERR
                'STDERR'
            else
                @log_file
            end
        end

        private

        def setfile file
            if File.writable?(file) or File.writable?(File.dirname(file))
                file
            else
                STDERR
            end
        end

        def log severity, msg
            met_name = severity.downcase

            @logger.send met_name, msg

            if sev_num(severity) >= SYSLOG_MIN_SEVERITY
                @syslog.send met_name, msg
            end
        end

        def sev_num sev
            Object.const_get "Logger::#{sev}"
        end
    end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
dns_one-0.4.56 lib/dns_one/log.rb
dns_one-0.4.55 lib/dns_one/log.rb
dns_one-0.4.54 lib/dns_one/log.rb
dns_one-0.4.53 lib/dns_one/log.rb
dns_one-0.4.52 lib/dns_one/log.rb
dns_one-0.4.51 lib/dns_one/log.rb
dns_one-0.4.50 lib/dns_one/log.rb
dns_one-0.4.49 lib/dns_one/log.rb
dns_one-0.4.48 lib/dns_one/log.rb