Sha256: d01c8ad53dfd031955b3678c02cd5524f542abe9dd2ad5f9df6cc2cf30fa3e55

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

require "logger"
require "singleton"

require "imap/backup/configuration"
require "imap/backup/sanitizer"

module Imap::Backup
  class Logger
    include Singleton

    def self.logger
      Logger.instance.logger
    end

    def self.setup_logging(options = {})
      copy = options.clone
      quiet = copy.delete(:quiet)
      verbose = copy.delete(:verbose)
      level =
        case
        when quiet
          ::Logger::Severity::UNKNOWN
        when verbose
          ::Logger::Severity::DEBUG
        else
          ::Logger::Severity::INFO
        end
      logger.level = level
      debug = level == ::Logger::Severity::DEBUG
      Net::IMAP.debug = debug

      copy
    end

    def self.sanitize_stderr
      sanitizer = Sanitizer.new($stdout)
      previous_stderr = $stderr
      $stderr = sanitizer
      yield
    ensure
      sanitizer.flush
      $stderr = previous_stderr
    end

    attr_reader :logger

    def initialize
      @logger = ::Logger.new($stdout)
      $stdout.sync = true
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
imap-backup-9.1.1 lib/imap/backup/logger.rb