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



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

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



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

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



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

def level
  @level
end

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



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

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)


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

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

#logger_ordinalObject



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

def logger_ordinal
  ordinal
end

#max_levelObject



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

def max_level
  logger_levels.keys.last
end

#max_level!Object



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

def max_level!
  self.logger_level = max_level
end

#min_levelObject



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

def min_level
  logger_levels.keys.first
end

#min_level!Object



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

def min_level!
  self.logger_level = min_level
end

#no_level!Object



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

def no_level!
  self.logger_level = nil
end

#no_ordinalObject



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

def no_ordinal
  -1
end

#ordinal(level = nil) ⇒ Object



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

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



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

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