Class: SANStore::CLI::Logger
- Inherits:
-
Object
- Object
- SANStore::CLI::Logger
- Includes:
- Singleton
- Defined in:
- lib/SANStore/cli/logger.rb
Overview
SANStore::CLI::Logger is a singleton class responsible for generating feedback in the terminal.
Constant Summary collapse
- ACTION_COLORS =
ANSI console codes (escape sequences) for highlighting particular log outputs.
{ :create => "\e[1m" + "\e[32m", # bold + green :delete => "\e[1m" + "\e[31m", # bold + red :error => "\e[1m" + "\e[31m", # bold + red :identical => "\e[1m" + "\e[34m", # bold + blue :info => "\e[1m" + "\e[34m", # bold + blue :update => "\e[1m" + "\e[33m", # bold + yellow :warning => "\e[1m" + "\e[33m", # bold + yellow }
Instance Attribute Summary collapse
-
#color ⇒ Object
(also: #color?)
Whether to use color in log messages or not.
-
#level ⇒ Object
The log level, which can be :high, :low or :off (which will log all messages, only high-priority messages, or no messages at all, respectively).
Instance Method Summary collapse
-
#initialize ⇒ Logger
constructor
A new instance of Logger.
-
#log(level, message, io = $stdout) ⇒ Object
Logs a message.
-
#log_level(level, action, message) ⇒ Object
Logs a messsage, using appropriate colours to highlight different levels.
Constructor Details
#initialize ⇒ Logger
Returns a new instance of Logger.
48 49 50 51 |
# File 'lib/SANStore/cli/logger.rb', line 48 def initialize @level = :high @color = true end |
Instance Attribute Details
#color ⇒ Object Also known as: color?
Whether to use color in log messages or not
45 46 47 |
# File 'lib/SANStore/cli/logger.rb', line 45 def color @color end |
#level ⇒ Object
The log level, which can be :high, :low or :off (which will log all messages, only high-priority messages, or no messages at all, respectively).
42 43 44 |
# File 'lib/SANStore/cli/logger.rb', line 42 def level @level end |
Instance Method Details
#log(level, message, io = $stdout) ⇒ Object
Logs a message.
level
-
The importance of this message. Can be :high or :low.
message
-
The message to be logged.
io
-
The IO instance to which the message will be written. Defaults to standard output.
82 83 84 85 86 87 88 |
# File 'lib/SANStore/cli/logger.rb', line 82 def log(level, , io=$stdout) # Don't log when logging is disabled return if @level == :off # Log when level permits it io.puts() if (@level == :low or @level == level) end |
#log_level(level, action, message) ⇒ Object
Logs a messsage, using appropriate colours to highlight different levels.
level
-
The importance of this action. Can be :high or :low.
action
-
The kind of file action. Can be :create, :update or :identical.
message
-
The identifier of the item the action was performed on.
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/SANStore/cli/logger.rb', line 62 def log_level(level, action, ) log( level, '%s%12s%s: %s' % [ color? ? ACTION_COLORS[action.to_sym] : '', action.to_s.capitalize, color? ? "\e[0m" : '', .word_wrap(60).indent(15).lstrip ] ) end |