class Simplelogger
Attributes
color[R]
console_style[RW]
enable_debug[RW]
enable_nocolor[RW]
enable_uuencode[RW]
enable_verbose[RW]
hostname[R]
logfile[R]
options[R]
program_name[RW]
time_format[RW]
user[R]
Public Class Methods
new(opts = {})
click to toggle source
# File lib/simplelogger.rb, line 17 def initialize(opts = {}) # Options: # :file => string # log file name # :program_name => string # program name # :enable_debug => boolean # display and log debug messages, default no logging to console & file # :enable_nocolor => boolean # disable colorful messages on console, default enabled # :enable_verbose => boolean # display messages on console (except debug), default messages are only logged to the log file # :enable_uuencode => boolean # uuencode log messages # :time_format => string # user time format, e.g. "%Y-%m-%d_%H-%M-%S", default set to iso8601 # # :console_style => string # 'full' -> display full log message on console # 'message' -> display log level + log message on console # default set to 'full' # raise "missing :file option" if not opts[:file] @logfile = File.new(opts[:file], "a") ; @logfile.sync = true @options = opts @color = Term::ANSIColor $stdout.sync = true @hostname = ENV['HOSTNAME'] || 'unknown_hostname' @user = Etc.getlogin || 'unknown_user' @time_format = opts[:time_format] @program_name = opts[:program_name] || 'unknown_program' @console_style = opts[:console_style] || 'full' @enable_verbose = opts[:enable_verbose] @enable_debug = opts[:enable_debug] @enable_uuencode = opts[:enable_uuencode] @enable_nocolor = opts[:enable_nocolor] end
Public Instance Methods
_print(string)
click to toggle source
# File lib/simplelogger.rb, line 186 def _print(string) string = uuencode(string) print string end
_puts(string)
click to toggle source
# File lib/simplelogger.rb, line 181 def _puts(string) string = uuencode(string) puts string end
close()
click to toggle source
# File lib/simplelogger.rb, line 58 def close logfile.close if logfile.closed? end
current_time()
click to toggle source
# File lib/simplelogger.rb, line 62 def current_time if time_format Time.new.strftime(time_format) else Time.now.iso8601(5) end end
debug(string)
click to toggle source
# File lib/simplelogger.rb, line 116 def debug(string) # Default debug messages are not logged, kept it out of 'log' if enable_debug string = uuencode(string) message = "#{current_time} #{hostname} #{user} #{program_name} DEBUG: #{string}" logfile.puts message message = "DEBUG: #{string}" if console_style == 'message' if enable_nocolor puts messages else puts color.magenta message end end end
error(string)
click to toggle source
# File lib/simplelogger.rb, line 136 def error(string) string = uuencode(string) log('ERROR',string) end
fail(string)
click to toggle source
# File lib/simplelogger.rb, line 161 def fail(string) string = uuencode(string) log('FAILURE',string) end
fatal(string)
click to toggle source
# File lib/simplelogger.rb, line 141 def fatal(string) string = uuencode(string) log('FATAL',string) end
info(string)
click to toggle source
# File lib/simplelogger.rb, line 111 def info(string) string = uuencode(string) log('INFO',string) end
init(string)
click to toggle source
# File lib/simplelogger.rb, line 151 def init(string) string = uuencode(string) log('INIT',string) end
log(level, string)
click to toggle source
# File lib/simplelogger.rb, line 78 def log(level, string) string = uuencode(string) message = "#{current_time} #{hostname} #{user} #{program_name} #{level}: #{string}" logfile.puts message message = "#{level}: #{string}" if console_style == 'message' if enable_verbose if enable_nocolor puts message else case level when 'INFO' puts color.green message when 'WARNING' puts color.yellow message when 'ERROR' puts color.red message when 'FATAL' puts color.red message when 'NOTICE' puts color.blue message when 'INIT' puts color.bold(color.blue(message)) when 'SUCCESS' puts color.green message when 'FAILURE' puts color.red message else puts message end end end end
notice(string)
click to toggle source
# File lib/simplelogger.rb, line 146 def notice(string) string = uuencode(string) log('NOTICE',string) end
stderr(string)
click to toggle source
# File lib/simplelogger.rb, line 171 def stderr(string) string = uuencode(string) $stderr.write string end
stdout(string)
click to toggle source
# File lib/simplelogger.rb, line 176 def stdout(string) string = uuencode(string) $stdout.write string end
success(string)
click to toggle source
# File lib/simplelogger.rb, line 156 def success(string) string = uuencode(string) log('SUCCESS',string) end
underscore(string)
click to toggle source
# File lib/simplelogger.rb, line 166 def underscore(string) string = uuencode(string) puts color.underscore string end
uuencode(string)
click to toggle source
# File lib/simplelogger.rb, line 70 def uuencode(string) if enable_uuencode [string].pack("u") else string end end
warning(string)
click to toggle source
# File lib/simplelogger.rb, line 131 def warning(string) string = uuencode(string) log('WARNING',string) end