lib/vedeu/support/log.rb in vedeu-0.4.23 vs lib/vedeu/support/log.rb in vedeu-0.4.24
- old
+ new
@@ -92,11 +92,12 @@
# @param type [Symbol] Colour code messages in the log file depending
# on their source.
#
# @return [TrueClass]
def log(message:, force: false, type: :info)
- logger.debug([message_type(type), message]) if enabled? || force
+ logger.debug([message_type(type),
+ message_body(type, message)]) if enabled? || force
end
# @return [TrueClass]
def logger
MonoLogger.new(log_file).tap do |log|
@@ -106,10 +107,12 @@
end
end
private
+ # @param message [String]
+ # @param time [Time]
# @return [String]
def formatted_message(message, time = Time.now)
[timestamp(time.utc.iso8601), message, "\n"].join
end
@@ -121,36 +124,47 @@
# @return [String]
def log_file
Vedeu::Configuration.log
end
+ # @param type [Symbol] The type of log message.
+ # @param body [String] The log message itself.
# @return [String]
+ def message_body(type, body)
+ Vedeu::Esc.send(message_types.fetch(type, :default).last) do
+ body
+ end
+ end
+
+ # @param type [Symbol] The type of log message.
+ # @return [String]
def message_type(type)
- Vedeu::Esc.send(message_types.fetch(type, :default)) do
+ Vedeu::Esc.send(message_types.fetch(type, :default).first) do
"[#{type}]".ljust(9)
end
end
# @return [Hash<Symbol => Symbol>]
def message_types
{
- config: :yellow,
- create: :green,
- debug: :red,
- drb: :blue,
- event: :magenta,
- info: :default,
- input: :yellow,
- output: :green,
- store: :cyan,
- test: :white,
- update: :cyan,
+ config: [:light_yellow, :yellow],
+ create: [:light_green, :green],
+ debug: [:light_red, :red],
+ drb: [:light_blue, :blue],
+ event: [:light_magenta, :magenta],
+ info: [:white, :default],
+ input: [:light_yellow, :yellow],
+ output: [:light_green, :green],
+ store: [:light_cyan, :cyan],
+ test: [:light_white, :white],
+ update: [:light_cyan, :cyan],
}
end
# Returns a formatted (red, underlined) UTC timestamp,
# eg. 2014-10-24T12:34:56Z
#
+ # @param utc_time [String]
# @return [String]
def timestamp(utc_time)
return '' if @last_seen == utc_time
@last_seen = utc_time