Module: Log::Level

Included in:
Log
Defined in:
lib/log/level.rb

Defined Under Namespace

Modules: Method Classes: LevelInfo

Instance Method Summary collapse

Instance Method Details

#add_level(level, &message_formatter) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/log/level.rb', line 33

def add_level(level, &message_formatter)
  return nil if logger_level?(level)

  Method.define(self, level)

  message_formatter = Log::Format::Defaults.message_formatter unless block_given?

  levels[level] = LevelInfo.new(level, levels.length, message_formatter)
end

#assure_level(level) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/log/level.rb', line 49

def assure_level(level)
  if level.nil?
    return
  end

  unless level == :_none
    if !levels?
      raise Log::Error, "Level #{level.inspect} cannot be set. The logger has no levels."
    end

    if !level?(level)
      raise Log::Error, "Level #{level.inspect} must be one of: #{levels.keys.join(', ')}"
    end
  end
end

#levelObject Also known as: logger_level



5
6
7
# File 'lib/log/level.rb', line 5

def level
  @level
end

#level=(level) ⇒ Object Also known as: logger_level=



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/log/level.rb', line 10

def level=(level)
  if [:_min, :_max].include?(level)
    if level == :_min
      level = min_level
    else
      level = max_level
    end
  end

  assure_level(level)
  @level = level
end

#level?(level = nil) ⇒ Boolean Also known as: logger_level?

Returns:

  • (Boolean)


24
25
26
27
28
29
30
# File 'lib/log/level.rb', line 24

def level?(level=nil)
  if level.nil?
    !logger_level.nil?
  else
    levels.has_key?(level)
  end
end

#logger_ordinalObject



77
78
79
# File 'lib/log/level.rb', line 77

def logger_ordinal
  ordinal
end

#max_levelObject



85
86
87
# File 'lib/log/level.rb', line 85

def max_level
  logger_levels.keys.last
end

#max_level!Object



93
94
95
# File 'lib/log/level.rb', line 93

def max_level!
  self.logger_level = max_level
end

#min_levelObject



89
90
91
# File 'lib/log/level.rb', line 89

def min_level
  logger_levels.keys.first
end

#min_level!Object



97
98
99
# File 'lib/log/level.rb', line 97

def min_level!
  self.logger_level = min_level
end

#no_level!Object



101
102
103
# File 'lib/log/level.rb', line 101

def no_level!
  self.logger_level = nil
end

#no_ordinalObject



81
82
83
# File 'lib/log/level.rb', line 81

def no_ordinal
  -1
end

#ordinal(level = nil) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
# File 'lib/log/level.rb', line 65

def ordinal(level=nil)
  level ||= logger_level

  if level == :_none
    return -1
  end

  level = levels[level]
  return no_ordinal if level.nil?
  level.ordinal
end

#remove_level(level) ⇒ Object



43
44
45
46
47
# File 'lib/log/level.rb', line 43

def remove_level(level)
  return nil unless logger_level?(level)
  Method.remove(self, level)
  levels.delete(level)
end