1

使用 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
    

    如果我们使用调试日志,那么它只有在调试模式打开时才可见。使用它的最佳方法是什么,如果可能,请举一些例子。

4

1 回答 1

1

记录器用于从雾发送到最终用户的消息,而不是供最终用户直接使用。我建议将使用这样的级别:

  1. 调试 - 并没有真正使用太多,更多的是在开发过程中使用,而不是我期望用于向最终用户发送消息的东西。
  2. deprecation - 任何时候我们改变了一个行为,但留下了一个向后兼容的适配器,我们也会尝试有一个 deprecation 警告解释并希望推动用户更新。
  3. 警告 - 除了正在发生的事情之外,这对于用户应该知道的任何与使用相关的事情都是有意义的(即,如果提供者方面发生了变化或提供者返回警告,但它还没有破坏到实际引发的程度一个错误)。

希望这会有所帮助,但当然很乐意根据需要进一步讨论。

于 2016-04-18T16:04:06.127 回答