Chef infra 为什么不是';t Chef显示来自自定义处理程序的日志?

Chef infra 为什么不是';t Chef显示来自自定义处理程序的日志?,chef-infra,Chef Infra,我试图更好地理解Chef's handler,通过一些阅读和一些博客文章,我已经建立了这个基本的定制handler 这是我食谱的开头 chef_handler 'SimpleReport::UpdatedResources' do source "handler_test.rb" action :enable end 这是处理器ie,handler\u test.rb require 'chef/log' require 'chef/handler' module SimpleRe

我试图更好地理解Chef's handler,通过一些阅读和一些博客文章,我已经建立了这个基本的定制handler

这是我食谱的开头

chef_handler 'SimpleReport::UpdatedResources' do
  source "handler_test.rb"
  action :enable
end

这是处理器ie,
handler\u test.rb

require 'chef/log'
require 'chef/handler'

module SimpleReport
  class UpdatedResources < Chef::Handler

    def report
      if run_status.updated_resources
        Chef::Log.info "Resources updated this run:"
        run_status.updated_resources.each {|r| Chef::Log.info "#{r.to_s}"}
      else
        Chef::Log.info "No Resources updated this run!"
      end
    end
  end
end
但在运行结束时,处理程序没有报告:

* chef_handler[SimpleReport::UpdatedResources] action enable
   - disable SimpleReport::UpdatedResources as a report handler
   - disable SimpleReport::UpdatedResources as a exception handler
   - load SimpleReport::UpdatedResources from handler_test.rb
   - enable chef_handler[SimpleReport::UpdatedResources] as a report handler
   - enable chef_handler[SimpleReport::UpdatedResources] as a exception handler
Running handlers:
  - SimpleReport::UpdatedResources
Running handlers complete

为什么会这样?

我访问了Chef社区slack和formatter,并在Chef以交互方式运行时显示格式化程序输出(取决于是否存在)


这似乎在任何地方都没有被记录下来,但事实确实如此。要解决这个问题,您可以使用
--force logger
选项确保它使用日志输出而不是格式化输出,或者传递
-L日志文件名
将结果记录到Chef community slack and formatter丢弃的文件中,如果Chef以交互方式运行,则显示格式化程序输出(取决于是否有人在场)

这似乎在任何地方都没有记录,但确实存在。要解决这一问题,可以使用
--force logger
选项确保它使用日志输出而不是格式化输出,或者传递
-L日志文件名
将结果记录到文件中