Как получить вывод журнала на тестовой кухне?
У меня есть это в моем рецепте:
log mylog1 do
level :info
message 'WHY I NO SEE THIS?'
end
log mylog2 do
level :info
message 'WHY I NO SEE THIS?'
end
Это то, что я вижу, когда делаю kitchen converge -l debug
:
...
Converging 3 resources
Recipe: mybook::myrecipe
* log[mylog1] action write
* log[mylog1] action write
...
3 ответа
Есть две части этого вопроса:
Во-первых, уровень журнала, передаваемый на кухню с помощью "-l debug", предназначен для исполняемого файла кухни, а не для поставщика, в данном случае " chef-solo ". Поэтому, если вы запустите кухню с опцией отладки, вы увидите, что инициатор работает с log_level как " auto ", как показано ниже, даже когда кухня в режиме отладки:
[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')
Это означает, что в приоритете ведения журнала chef-solo " auto " соответствует уровню " warn ". И, следовательно, никакие выходные данные не регистрируются, если уровень журнала установлен как информация в ресурсе "log". Попробуйте приведенный ниже код, вы увидите разницу:
log "mylog1" do
level :warn
message 'WHY I NO SEE THIS?'
end
log "mylog2" do
level :info
message 'WHY I NO SEE THIS?'
end
Выход:
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 " log_level, вы можете перейти к " /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.10.0 / lib / kitchen / provisioner / chef_base.rb "и измените уровень жестко запрограммированного журнала с автоматического на любой режим, который разрешает запись в режиме chef-solo https://docs.chef.io/config_rb_solo.html.
Начиная с Kitchen 1.7.0 вы можете настроить это в файле kitchen.yml:
provisioner:
name: chef_zero
log_level: info
Посмотрите эту страницу (кажется, не связана с документами Кухни)
С более новой кухней вы также можете сделать kitchen test -D
вызвать отладочный вывод для кухни и вашего chef-client
запустить.