Module: Moon::Logfmt

Defined in:
lib/moon-logfmt/utils.rb,
lib/moon-logfmt/logger.rb,
lib/moon-logfmt/version.rb,
lib/moon-logfmt/severity.rb,
lib/moon-logfmt/formatter.rb,
lib/moon-logfmt/null_logger.rb,
lib/moon-logfmt/stdlib_loggable.rb

Overview

Implementation of logfmt for Moon

Defined Under Namespace

Modules: Severity, StdlibLoggable, Version Classes: Formatter, KeyValueFormatter, Logger

Constant Summary collapse

UNESCAPED_STRING =

Regular expression used for checking strings that may need escaping. This regular expression will validate true if the string doesn’t need escaping.

/\A[\w\.\-\+\%\_\,\:\;\/]*\z/i
VERSION =

Returns:

  • (String)
Version::STRING
NullLogger =
Logger.new

Class Method Summary collapse

Class Method Details

.determine_loglevel_from_object(object) ⇒ Integer

Determines what the loglevel should be from the given object

Parameters:

  • object (Object)

Returns:

  • (Integer)

    loglevel



34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/moon-logfmt/utils.rb', line 34

def self.determine_loglevel_from_object(object)
  return object if object.is_a?(Integer)
  case object.to_s.upcase
  when 'DEBUG'   then Moon::Logfmt::Severity::DEBUG
  when 'INFO'    then Moon::Logfmt::Severity::INFO
  when 'WARN'    then Moon::Logfmt::Severity::WARN
  when 'ERROR'   then Moon::Logfmt::Severity::ERROR
  when 'FATAL'   then Moon::Logfmt::Severity::FATAL
  when 'UNKNOWN' then Moon::Logfmt::Severity::UNKNOWN
  else
    raise ArgumentError, "unknown log level #{object}"
  end
end

.escape_context_data(data) {|key, value| ... } ⇒ Object

Escapes the context values and yields the result.

Parameters:

  • data (Hash<[String, Symbol], String>)

Yield Parameters:

  • key (String)
  • value (String)


16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/moon-logfmt/utils.rb', line 16

def self.escape_context_data(data)
  return to_enum :escape_context_data, data unless block_given?
  data.each_pair do |key, value|
    case value
    when Array
      value = value.join(',')
    else
      value = value.to_s
    end
    value = value.dump unless value =~ UNESCAPED_STRING
    yield key.to_s, value
  end
end

.loglevel_to_symbol(loglevel) ⇒ Symbol

Parameters:

  • loglevel (Integer)

Returns:

  • (Symbol)


50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/moon-logfmt/utils.rb', line 50

def self.loglevel_to_symbol(loglevel)
  case loglevel
  when Moon::Logfmt::Severity::DEBUG   then :debug
  when Moon::Logfmt::Severity::INFO    then :info
  when Moon::Logfmt::Severity::WARN    then :warn
  when Moon::Logfmt::Severity::ERROR   then :error
  when Moon::Logfmt::Severity::FATAL   then :fatal
  when Moon::Logfmt::Severity::UNKNOWN then :unknown
  else
    loglevel.to_s
  end
end

.new(*args, &block) ⇒ Object

Parameters:

  • data (Hash<[String, Symbol], String>)


64
65
66
# File 'lib/moon-logfmt/utils.rb', line 64

def self.new(*args, &block)
  Moon::Logfmt::Logger.new(*args, &block)
end