Module: Evesync::Log
- Defined in:
- lib/evesync/log.rb
Overview
Logging via syslog
Constant Summary collapse
- LEVELS =
Supported levels for logging
%i[debug info notice warn error fatal]
- DEFAULT_ENGINE =
Default engine for logging, one of (:io, :syslog)
:io- SYSLOG =
Log level mapping for syslog
{ :debug => Syslog::LOG_DEBUG, :info => Syslog::LOG_INFO, :notice => Syslog::LOG_NOTICE, :warn => Syslog::LOG_WARNING, :error => Syslog::LOG_ERR, :fatal => Syslog::LOG_CRIT, #:alert => Syslog::LOG_ALERT, #:emerg => Syslog::LOG_EMERG, }
- SYSLOG_OPTIONS =
[ Syslog::LOG_PID, Syslog::LOG_NOWAIT, Syslog::LOG_CONS, Syslog::LOG_PERROR, ].inject(&:|)
- SYSLOG_FACILITY =
[ Syslog::LOG_DAEMON, Syslog::LOG_LOCAL5, ].inject(&:|)
Class Method Summary collapse
- .check_logger ⇒ Object
- .engine=(engine) ⇒ Object
-
.init_logger ⇒ Object
Using syslog implementation.
- .level ⇒ Object
- .level=(lvl) ⇒ Object
- .to_string(*args) ⇒ Object
Class Method Details
.check_logger ⇒ Object
74 75 76 |
# File 'lib/evesync/log.rb', line 74 def check_logger init_logger unless @logger end |
.engine=(engine) ⇒ Object
78 79 80 81 82 |
# File 'lib/evesync/log.rb', line 78 def engine=(engine) raise UnsupportedLogEngine.new(engine) \ unless [:syslog, :io].member? engine @engine = engine end |
.init_logger ⇒ Object
Using syslog implementation
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/evesync/log.rb', line 85 def init_logger @engine ||= DEFAULT_ENGINE prog = File.basename($PROGRAM_NAME) case @engine when :syslog @logger = Syslog.open(prog, SYSLOG_OPTIONS, SYSLOG_FACILITY) when :io FileUtils.mkdir_p '/var/log/evesync/' @logger = Logger.new("/var/log/evesync/#{prog}.log") @logger.formatter = proc do |sev, dtime, _prog, msg| time = dtime.strftime('%Y-%m-%d %H:%M:%S') "[#{time}] #{prog.ljust(8)} #{sev.ljust(5)}: #{msg}\n" end end @level = Config[:loglevel] || :info end |
.level ⇒ Object
70 71 72 |
# File 'lib/evesync/log.rb', line 70 def level @level end |
.level=(lvl) ⇒ Object
64 65 66 67 68 |
# File 'lib/evesync/log.rb', line 64 def level=(lvl) check_logger raise "Unknown level #{lvl}" unless LEVELS.include? lvl @level = lvl end |
.to_string(*args) ⇒ Object
105 106 107 108 |
# File 'lib/evesync/log.rb', line 105 def to_string(*args) to_s_with_space = ->(s) { "#{s} " } args.map(&to_s_with_space).reduce(&:+).strip end |