Лучшие практики для использования Fog::Logger
Каковы лучшие практики для использования Fog::Logger. Туман обеспечивает 3 типа регистрации:
- отлаживать
- неодобрение
предупреждение
module Fog class Logger @channels = { :deprecation => ::STDERR, :warning => ::STDERR } @channels[:debug] = ::STDERR if ENV["DEBUG"] def self.[](channel) @channels[channel] end def self.[]=(channel, value) @channels[channel] = value end def self.debug(message) write(:debug, "[light_black][fog][DEBUG] #{message}[/]\n") end def self.deprecation(message) write(:deprecation, "[yellow][fog][DEPRECATION] #{message}[/]\n") end def self.warning(message) write(:warning, "[yellow][fog][WARNING] #{message}[/]\n") end def self.write(key, value) channel = @channels[key] if channel message = if channel.tty? value.gsub(Fog::Formatador::PARSE_REGEX) { "\e[#{Fog::Formatador::STYLES[$1.to_sym]}m" }.gsub(Fog::Formatador::INDENT_REGEX, "") else value.gsub(Fog::Formatador::PARSE_REGEX, "").gsub(Fog::Formatador::INDENT_REGEX, "") end channel.write(message) end nil end end end
Если мы используем ведение журнала отладки, оно отображается только при включенном режиме отладки. Как лучше всего это использовать, приведите несколько примеров, если это возможно.
1 ответ
Решение
Регистратор предназначен для сообщений от тумана конечным пользователям, а не для непосредственного использования конечными пользователями. Я бы предложил использовать уровни примерно так:
- debug - не очень часто используется, больше для использования во время разработки, чем то, что я ожидал бы использовать для обмена сообщениями с конечными пользователями.
- не рекомендуется - Каждый раз, когда мы меняем поведение, но оставляем обратно совместимый адаптер, мы также пытаемся получить предупреждение об устаревании, объясняющее и, мы надеемся, побуждающее пользователей к обновлению.
- предупреждение - это имеет смысл для всего, что связано с использованием, о котором пользователь должен знать в дополнение к тому, что происходит (например, если что-то изменилось на стороне провайдера или провайдер возвращает предупреждение, но оно не сломано, чтобы фактически вызвать ошибка).
Надеюсь, что это помогает, но, безусловно, с удовольствием обсудим дальше по мере необходимости.