Class: QuartzTorrent::LogManager
- Inherits:
-
Object
- Object
- QuartzTorrent::LogManager
- Defined in:
- lib/quartz_torrent/log.rb
Overview
Class used to control logging.
Constant Summary collapse
- @@outputter =
nil
- @@defaultLevel =
Log4r::ERROR
- @@maxOldLogs =
10
- @@maxLogSize =
1048576
- @@dest =
nil
Class Method Summary collapse
-
.getLogger(name) ⇒ Object
Get the logger with the specified name.
-
.initializeFromEnv ⇒ Object
Initialize logging based on environment variables.
-
.setLevel(name, level) ⇒ Object
Set log level for the named logger.
-
.setup(&block) ⇒ Object
Initialize the log manager.
Class Method Details
.getLogger(name) ⇒ Object
Get the logger with the specified name. Currently this returns a log4r Logger.
59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/quartz_torrent/log.rb', line 59 def self.getLogger(name) if ! @@outputter Log4r::Logger.root else logger = Log4r::Logger[name] if ! logger logger = Log4r::Logger.new name logger.level = @@defaultLevel logger.outputters = @@outputter end logger end end |
.initializeFromEnv ⇒ Object
Initialize logging based on environment variables. The QUARTZ_TORRENT_LOGFILE variable controls where logging is written, and should be either a file path, ‘stdout’ or ‘stderr’.
19 20 21 22 23 |
# File 'lib/quartz_torrent/log.rb', line 19 def self.initializeFromEnv @@dest = ENV['QUARTZ_TORRENT_LOGFILE'] @@defaultLevel = parseLogLevel(ENV['QUARTZ_TORRENT_LOGLEVEL']) end |
.setLevel(name, level) ⇒ Object
Set log level for the named logger. The level can be one of fatal, error, warn, info, or debug as a string or symbol.
52 53 54 55 56 |
# File 'lib/quartz_torrent/log.rb', line 52 def self.setLevel(name, level) level = parseLogLevel(level) logger = LogManager.getLogger(name) logger.level = level end |
.setup(&block) ⇒ Object
Initialize the log manager. This method expects a block, and the block may call the following methods:
setLogfile(path)
setDefaultLevel(level)
setMaxOldLogs(num)
setMaxLogSize(size)
In the above methods, ‘path` defines where logging is written, and should be either a file path, ’stdout’ or ‘stderr’; ‘level` is a logging level as per setLevel, `num` is an integer, and `size` is a value in bytes.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/quartz_torrent/log.rb', line 34 def self.setup(&block) self.instance_eval &block dest = @@dest if dest if dest.downcase == 'stdout' dest = Log4r::Outputter.stdout elsif dest.downcase == 'stderr' dest = Log4r::Outputter.stderr else dest = Log4r::RollingFileOutputter.new('outputter', {filename: dest, maxsize: @@maxLogSize, max_backups: @@maxOldLogs}) end end @@outputter = dest end |