Chef infra 如何在测试厨房中获得日志输出?

Chef infra 如何在测试厨房中获得日志输出?,chef-infra,chef-recipe,test-kitchen,Chef Infra,Chef Recipe,Test Kitchen,我的食谱里有: log mylog1 do 级别:信息 “为什么我看不到这个?” 终止 日志mylog2 do 级别:信息 “为什么我看不到这个?” 终止 这就是我在执行kitchen converge-l debug时看到的: ... Converging 3 resources Recipe: mybook::myrecipe * log[mylog1] action write * log[mylog1] action write ... 这个问题分为两个部分: 首先,通过“-

我的食谱里有:

log mylog1 do
级别:信息
“为什么我看不到这个?”
终止
日志mylog2 do
级别:信息
“为什么我看不到这个?”
终止
这就是我在执行
kitchen converge-l debug
时看到的:

...
Converging 3 resources
Recipe: mybook::myrecipe
  * log[mylog1] action write
  * log[mylog1] action write
...

这个问题分为两个部分:

首先,通过“-l debug”传递到kitchen的日志级别是针对kitchen可执行文件的,而不是针对provisioner的,在本例中为“chef solo”。因此,如果您运行kitchen with debug选项,您会看到provisioner以日志级别运行,如下“自动”,即使kitchen处于调试模式:

[SSH] vagrant@127.0.0.1<{:user_known_hosts_file=>"/dev/null",
:paranoid=>false, :port=>"2222", :compression=>false, :compression_level=>0,
:keepalive=>true, :keepalive_interval=>60, :timeout=>15, :keys_only=>true,
:keys=>["/Users/mpriyada/myWorks/.kitchen/kitchen-vagrant/kitchen-default-centos/.vagrant/machines/default/virtualbox/private_key"],
:auth_methods=>["publickey"], :user=>"vagrant"}> (sh -c 'sudo -E /opt/chef/bin/chef-solo
--config /tmp/kitchen/solo.rb --log_level auto --force-formatter --no-color
--json-attributes /tmp/kitchen/dna.json')
输出:

Recipe: test3::default
   * log[mylog1] action write[2016-08-17T03:55:16+00:00] WARN: WHY I NO SEE THIS?      

   * log[mylog2] action write
Running handlers:
Running handlers complete

现在,第二部分,如果您不想在“auto”日志级别运行厨房,您可以转到“/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.10.0/lib/kitchen/provisioner/chef_base.rb”并将硬编码日志级别自动更改为chef solo日志允许的任何级别。

此问题有两个部分:

首先,通过“-l debug”传递到kitchen的日志级别是针对kitchen可执行文件的,而不是针对provisioner的,在本例中为“chef solo”。因此,如果您运行kitchen with debug选项,您会看到provisioner以日志级别运行,如下“自动”,即使kitchen处于调试模式:

[SSH] vagrant@127.0.0.1<{:user_known_hosts_file=>"/dev/null",
:paranoid=>false, :port=>"2222", :compression=>false, :compression_level=>0,
:keepalive=>true, :keepalive_interval=>60, :timeout=>15, :keys_only=>true,
:keys=>["/Users/mpriyada/myWorks/.kitchen/kitchen-vagrant/kitchen-default-centos/.vagrant/machines/default/virtualbox/private_key"],
:auth_methods=>["publickey"], :user=>"vagrant"}> (sh -c 'sudo -E /opt/chef/bin/chef-solo
--config /tmp/kitchen/solo.rb --log_level auto --force-formatter --no-color
--json-attributes /tmp/kitchen/dna.json')
输出:

Recipe: test3::default
   * log[mylog1] action write[2016-08-17T03:55:16+00:00] WARN: WHY I NO SEE THIS?      

   * log[mylog2] action write
Running handlers:
Running handlers complete

现在,第二部分,如果您不想在“auto”日志级别运行厨房,您可以转到“/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.10.0/lib/kitchen/provisioner/chef_base.rb”并将硬编码日志级别自动更改为任何chef solo日志允许的级别。

自Kitchen 1.7.0以来,您可以在Kitchen.yml中配置此级别:

provisioner:
  name: chef_zero
  log_level: info

请参阅(在Kitchen文档中似乎未链接到)

因为Kitchen 1.7.0,您可以在Kitchen.yml中配置它:

provisioner:
  name: chef_zero
  log_level: info

请参阅(厨房文档中似乎没有链接)

对于较新的厨房,您还可以执行
厨房测试-D
来触发厨房和您的
厨师客户端的调试输出运行。

对于较新的厨房,您还可以执行
厨房测试-D
来触发厨房和您的
厨师客户端的调试输出运行。

我可以在.Kitchen.yml或配置文件中进行设置吗在我的烹饪书或食谱中的某个地方,而不是修改实际的厨房代码?因为,它是硬编码的。恐怕没什么可做的。厨房日志级别可以通过环境变量更改:
kitchen\u log='DEBUG'kitchen converge
@Duke-问题是在运行kitchen时更改chef solo/chef zero日志级别更改。我可以在.kitchen.yml或我的烹饪书或食谱中的某个配置文件中设置它,而不是修改实际的日志级别吗厨房代码?因为,它是硬编码的。恐怕做不了多少。厨房日志级别可以通过环境变量更改:
kitchen\u log='DEBUG'kitchen converge
@Duke-问题是在运行kitchen时更改chef solo/chef zero日志级别更改。