class AppInsights::LoggerProxy

Public Class Methods

new(logger, ignore_log_level=false, telemetry_client=nil) click to toggle source
# File lib/appinsights/logger_proxy.rb, line 14
def initialize(logger, ignore_log_level=false, telemetry_client=nil)
  @logger = logger
  @ignore_log_level = ignore_log_level
  @telemetry_client = telemetry_client

  %w(debug info warn error fatal unknown).each do |level|
    LoggerProxy.class_eval do
      define_method level.to_sym do |*args , &block|
        if !@ignore_log_level && !logger.send("#{level}?".to_sym)
          return true
        end

        msg = message(*args, &block)
        tc = @telemetry_client || AppInsights::Context.telemetry_client
        tc.track_trace(msg, @@severity_levels[level.to_sym])
        @logger.send(level, msg, &block)
      end
    end
  end
end

Protected Instance Methods

method_missing(name, *args, &block) click to toggle source
# File lib/appinsights/logger_proxy.rb, line 37
def method_missing(name, *args, &block)
  @logger.send(name, *args, &block)
end

Private Instance Methods

message(*args, &block) click to toggle source
# File lib/appinsights/logger_proxy.rb, line 43
def message(*args, &block)
  if block_given?
    block.call
  else
    args = args.flatten.compact
    args = (args.count == 1 ? args[0] : args)
    args.is_a?(Proc) ? args.call : args
  end
end