Chef infra 为什么不是';t Chef显示来自自定义处理程序的日志?
我试图更好地理解Chef's handler,通过一些阅读和一些博客文章,我已经建立了这个基本的定制handler 这是我食谱的开头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_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日志文件名
将结果记录到文件中