Module: Scriptster::Logger
- Included in:
- ShellCmd
- Defined in:
- lib/scriptster/logger.rb
Constant Summary collapse
- @@name =
nil- @@file =
nil- @@timestamps =
false- @@message_types =
{ :info => "info", :warn => "WARN", :err => "ERR!", :debug => "dbg?" }
- @@verbosity =
:verbose- @@verbosity_levels =
{ :quiet => 0, :essential => 1, :important => 2, :informative => 3, :verbose => 4 }
Class Method Summary collapse
- .log(msg_type, msg, verbosity = :informative) ⇒ Object
- .set_file(file) ⇒ Object
- .set_name(name) ⇒ Object
- .set_verbosity(level) ⇒ Object
- .show_timestamps ⇒ Object
Instance Method Summary collapse
Class Method Details
.log(msg_type, msg, verbosity = :informative) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/scriptster/logger.rb', line 69 def self.log(msg_type, msg, verbosity=:informative) if @@verbosity_levels[verbosity] <= @@verbosity_levels[@@verbosity] ts = if Time.now.strftime("%Y-%m-%d %H:%M").style("timestamp") + " " else "" end name = if @@name != nil && @@name.length > 0 @@name.style("name") + " " else "" end msg.chomp! msg = Tco::parse msg, Tco::get_style("#{msg_type.to_s}-message") line = ts << name.style("name") << [msg_type].style(msg_type.to_s) << " " << msg puts line STDOUT.flush if @@file # Strip colours from the message before writing to a file @@file.puts line.gsub(/\033\[[0-9]+(;[0-9]+){0,2}m/, "") end end end |
.set_file(file) ⇒ Object
59 60 61 62 63 |
# File 'lib/scriptster/logger.rb', line 59 def self.set_file(file) @@file.close if @@file @@file = nil @@file = File.open file, "w" if file end |
.set_name(name) ⇒ Object
48 49 50 |
# File 'lib/scriptster/logger.rb', line 48 def self.set_name(name) @@name = name end |
.set_verbosity(level) ⇒ Object
52 53 54 55 56 57 |
# File 'lib/scriptster/logger.rb', line 52 def self.set_verbosity(level) msg = "Message verbosity level not recognised (#{})." raise msg unless @@verbosity_levels.has_key? level.to_sym @@verbosity = level.to_sym end |
.show_timestamps ⇒ Object
65 66 67 |
# File 'lib/scriptster/logger.rb', line 65 def self. = true end |
Instance Method Details
#log(msg_type, msg, verbosity = :informative) ⇒ Object
99 100 101 |
# File 'lib/scriptster/logger.rb', line 99 def log(msg_type, msg, verbosity=:informative) Logger::log msg_type, msg, verbosity end |