Module: ScoutApm::Agent::Logging

Included in:
ScoutApm::Agent
Defined in:
lib/scout_apm/agent/logging.rb

Instance Method Summary collapse

Instance Method Details

#apply_log_formatObject



27
28
29
30
31
32
33
# File 'lib/scout_apm/agent/logging.rb', line 27

def apply_log_format
  def logger.format_message(severity, timestamp, progname, msg)
    # since STDOUT isn't exclusive like the scout_apm.log file, apply a prefix.
    prefix = @logdev.dev == STDOUT ? "[Scout] " : ''
    prefix + "[#{Utils::Time.to_s(timestamp)} #{ScoutApm::Agent.instance.environment.hostname} (#{$$})] #{severity} : #{msg}\n"
  end
end

#default_log_pathObject



5
6
7
# File 'lib/scout_apm/agent/logging.rb', line 5

def default_log_path
  "#{environment.root}/log"
end

#determine_log_destinationObject



46
47
48
49
50
51
52
# File 'lib/scout_apm/agent/logging.rb', line 46

def determine_log_destination
  case true
  when wants_stdout? then STDOUT
  when wants_stderr? then STDERR
  else "#{log_file_path}/scout_apm.log"
  end
end

#init_loggerObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/scout_apm/agent/logging.rb', line 9

def init_logger
  begin
    @log_file ||= determine_log_destination
  rescue => e
  end

  begin
    @logger ||= Logger.new(@log_file)
    @logger.level = log_level
    apply_log_format
  rescue Exception => e
    @logger = Logger.new(STDOUT)
    apply_log_format
    @logger.error "Unable to open log file for writing: #{e.message}. Falling back to STDOUT"
  end
  @logger
end

#log_file_pathObject



62
63
64
# File 'lib/scout_apm/agent/logging.rb', line 62

def log_file_path
  config.value('log_file_path') || default_log_path
end

#log_levelObject



35
36
37
38
39
40
41
42
43
44
# File 'lib/scout_apm/agent/logging.rb', line 35

def log_level
  case config.value('log_level').downcase
    when "debug" then Logger::DEBUG
    when "info" then Logger::INFO
    when "warn" then Logger::WARN
    when "error" then Logger::ERROR
    when "fatal" then Logger::FATAL
    else Logger::INFO
  end
end

#wants_stderr?Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/scout_apm/agent/logging.rb', line 58

def wants_stderr?
  config.value('log_file_path').to_s.upcase == 'STDERR'
end

#wants_stdout?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/scout_apm/agent/logging.rb', line 54

def wants_stdout?
  config.value('log_file_path').to_s.upcase == 'STDOUT' || environment.platform_integration.log_to_stdout?
end