Class: MCollective::Logger::File_logger
- Inherits:
-
Base
- Object
- Base
- MCollective::Logger::File_logger
show all
- Defined in:
- lib/mcollective/logger/file_logger.rb
Overview
Impliments a file based logger using the standard ruby logger class
To configure you should set:
- config.logfile
- config.keeplogs defaults to 2097152
- config.max_log_size defaults to 5
Instance Attribute Summary
Attributes inherited from Base
#active_level
Instance Method Summary
collapse
Methods inherited from Base
#cycle_level, #initialize, #set_level
Instance Method Details
#log(level, from, msg) ⇒ Object
39
40
41
42
43
44
45
|
# File 'lib/mcollective/logger/file_logger.rb', line 39
def log(level, from, msg)
@logger.add(map_level(level)) { "#{from} #{msg}" }
rescue
STDERR.puts("#{level}: #{msg}")
end
|
#reopen ⇒ Object
47
48
49
50
51
52
|
# File 'lib/mcollective/logger/file_logger.rb', line 47
def reopen
level = @logger.level
@logger.close
start
@logger.level = level
end
|
#set_logging_level(level) ⇒ Object
24
25
26
27
28
29
|
# File 'lib/mcollective/logger/file_logger.rb', line 24
def set_logging_level(level)
@logger.level = map_level(level)
rescue Exception => e
@logger.level = ::Logger::DEBUG
log(:error, "", "Could not set logging to #{level} using debug instead: #{e.class} #{e}")
end
|
#start ⇒ Object
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/mcollective/logger/file_logger.rb', line 13
def start
config = Config.instance
@logger = ::Logger.new(config.logfile, config.keeplogs, config.max_log_size)
@logger.formatter = ::Logger::Formatter.new
@logger.formatter.datetime_format = "%Y-%m-%dT%H:%M:%S.%6N%:z "
set_level(config.loglevel.to_sym)
end
|
#valid_levels ⇒ Object
31
32
33
34
35
36
37
|
# File 'lib/mcollective/logger/file_logger.rb', line 31
def valid_levels
{:info => ::Logger::INFO,
:warn => ::Logger::WARN,
:debug => ::Logger::DEBUG,
:fatal => ::Logger::FATAL,
:error => ::Logger::ERROR}
end
|