Module: Scriptster::Logger
- Included in:
- Scriptster, ShellCmd
- Defined in:
- lib/scriptster/logger.rb
Constant Summary collapse
- @@script_name =
"scriptster"- @@file =
nil- @@time =
false- @@message_types =
{ :info => "info", :warn => "warn", :err => "err", :debug => "debug" }
- @@verbosity =
:verbose- @@logger_verbosity_levels =
{ :essential => 0, :important => 1, :informative => 2, :verbose => 3 }
Class Method Summary collapse
- .log(msg_type, msg, verbosity = nil) ⇒ Object
- .set_file(file) ⇒ Object
- .set_script_name(name) ⇒ Object
- .set_time(time_enabled) ⇒ Object
- .set_verbosity(level) ⇒ Object
Instance Method Summary collapse
Class Method Details
.log(msg_type, msg, verbosity = nil) ⇒ Object
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# File 'lib/scriptster/logger.rb', line 112 def self.log(msg_type, msg, verbosity=nil) now = Time.now.strftime "%Y-%m-%d %H-%M " out = now + @@script_name.style("script-name") << " " file = now + @@script_name + " " case msg_type when :info out << "info".style([:info]) file << "info" verbosity = :informative unless verbosity when :warn out << "WARN".style([:warn]) file << "WARN" verbosity = :informative unless verbosity when :err out << "ERR!".style([:err]) file << "ERR!" verbosity = :essential unless verbosity when :debug out << "dbg?".style([:debug]) file << "dbg?" verbosity = :verbose unless verbosity end if verbosity <= @@verbosity out << " " << msg.chomp puts out STDOUT.flush # Strip colours from the message before writing to a file file << " " << msg.chomp.gsub(/\033\[[0-9]+(;[0-9]+){0,2}m/, "") @@file.puts file if @@file end end |
.set_file(file) ⇒ Object
102 103 104 105 106 |
# File 'lib/scriptster/logger.rb', line 102 def self.set_file(file) @@file.close if @@file @@file = nil @@file = File.open file, "w" if @@file end |
.set_script_name(name) ⇒ Object
91 92 93 |
# File 'lib/scriptster/logger.rb', line 91 def self.set_script_name(name) @@script_name = name end |
.set_time(time_enabled) ⇒ Object
108 109 110 |
# File 'lib/scriptster/logger.rb', line 108 def self.set_time(time_enabled) @@time = time_enabled end |
.set_verbosity(level) ⇒ Object
95 96 97 98 99 100 |
# File 'lib/scriptster/logger.rb', line 95 def self.set_verbosity(level) msg = "Message verbosity level not recognised (#{})." raise msg unless @@logger_verbosity_levels.has_key? level.to_sym @@verbosity = level.to_sym end |
Instance Method Details
#log(msg_type, msg, verbosity = nil) ⇒ Object
147 148 149 |
# File 'lib/scriptster/logger.rb', line 147 def log(msg_type, msg, verbosity=nil) Logger::log msg_type, msg end |
#tag(tag, msg) ⇒ Object
151 152 153 |
# File 'lib/scriptster/logger.rb', line 151 def tag(tag, msg) tag.fg("blue").bg("dark-grey") << " " << msg end |