Class: Rails::Pretty::Logger::ActiveSupportLogger

Inherits:
RailsLogger
  • Object
show all
Includes:
ActiveSupport::LoggerThreadSafeLevel, LoggerSilence
Defined in:
lib/rails/pretty/logger/active_support_logger.rb

Direct Known Subclasses

ConsoleLogger

Defined Under Namespace

Classes: SimpleFormatter

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ ActiveSupportLogger

Returns a new instance of ActiveSupportLogger.



79
80
81
82
83
# File 'lib/rails/pretty/logger/active_support_logger.rb', line 79

def initialize(*args)
  super
  @formatter = SimpleFormatter.new
  after_initialize if respond_to? :after_initialize
end

Class Method Details

.broadcast(logger) ⇒ Object

Broadcasts logs to multiple loggers.



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/rails/pretty/logger/active_support_logger.rb', line 22

def self.broadcast(logger) # :nodoc:
  Module.new do
    define_method(:add) do |*args, &block|
      logger.add(*args, &block)
      super(*args, &block)
    end

    define_method(:<<) do |x|
      logger << x
      super(x)
    end

    define_method(:close) do
      logger.close
      super()
    end

    define_method(:progname=) do |name|
      logger.progname = name
      super(name)
    end

    define_method(:formatter=) do |formatter|
      logger.formatter = formatter
      super(formatter)
    end

    define_method(:level=) do |level|
      logger.level = level
      super(level)
    end

    define_method(:local_level=) do |level|
      logger.local_level = level if logger.respond_to?(:local_level=)
      super(level) if respond_to?(:local_level=)
    end

    define_method(:silence) do |level = Logger::ERROR, &block|
      if logger.respond_to?(:silence)
        logger.silence(level) do
          if defined?(super)
            super(level, &block)
          else
            block.call(self)
          end
        end
      else
        if defined?(super)
          super(level, &block)
        else
          block.call(self)
        end
      end
    end
  end
end

.logger_outputs_to?(logger, *sources) ⇒ Boolean

Returns true if the logger destination matches one of the sources

logger = Logger.new(STDOUT)
ActiveSupport::Logger.logger_outputs_to?(logger, STDOUT)
# => true

Returns:

  • (Boolean)


15
16
17
18
19
# File 'lib/rails/pretty/logger/active_support_logger.rb', line 15

def self.logger_outputs_to?(logger, *sources)
  logdev = logger.instance_variable_get("@logdev")
  logger_source = logdev.dev if logdev.respond_to?(:dev)
  sources.any? { |source| source == logger_source }
end

Instance Method Details

#add(severity, message = nil, progname = nil, &block) ⇒ Object



85
86
87
88
# File 'lib/rails/pretty/logger/active_support_logger.rb', line 85

def add(severity, message = nil, progname = nil, &block)
  return true if @logdev.nil? || (severity || UNKNOWN) < level
  super
end