使用Fog :: Logger的最佳实践

时间:2016-04-14 07:37:03

标签: fog fog-aws fog-google

使用Fog :: Logger的最佳做法是什么? Fog提供3种类型的日志记录:

  1. 调试
  2. 弃用
  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 个答案:

答案 0 :(得分:1)

记录器适用于从雾到最终用户的消息,而不是直接用于最终用户。我建议使用这样的水平:

  1. debug - 在开发过程中使用的次数并不多,我希望用于向最终用户发送消息。
  2. 弃用 - 只要我们更改了行为,但留下了向后兼容的适配器,我们也会尝试使用弃用警告进行解释,并希望驱动用户进行更新。
  3. 警告 - 除了正在发生的事情之外,这对于与用户有关的任何事情都是有意义的(即,如果提供商方面的某些内容发生了变化,或者提供商发出了警告,但它不是破碎到足以实际引发错误)。
  4. 希望有所帮助,但很乐意根据需要进一步讨论。