How to print log in console window while executing chef command with Chef-Client 16.6.14?
Log is being generated only in logfile on giving a log path through -L/--logfile.
Did you find solution to this? In my case, I don't see log output on the jenkins console.
By default the formatter suppressed :info
output so all that is displayed is :warn
or higher
So we'd recommend trying Chef::Log.warn
instead of Chef::Log.info
Thanks. But we have thousands of code lines with Chef::Log.info
. So changing all to warn
is difficult. How do we override the default behavior to force formatter to not suppress :info
output?
FYI- I am upgrading from Chef client 14 to 16. I am expecting output on Jenkins console. With chef client 14, it's all good.
Any help would be appreciated!
Would chef-client -l info --force-formatter
achieve what you're after ?
This did not help. I have noticed that when I put --logfile
parameter in my chef command, the logs are only getting written to the log file and not to STDOUT. This was a change done as part of chef 16 upgrade ( End the formatter and logger confusion and have the formatter output log messages · Issue #9126 · chef/chef (github.com)).
As a workaround, Since I am calling from a powershell script, I am redirecting the output of the command to the file (instead of using --logfile)
$timestamp = Get-Date -UFormat "%Y-%m-%d-%H-%M-%S"
Invoke-Command -ComputerName $servername -ScriptBlock{param ($timestamp) chef-client --config c:\chef\client-local-mode.rb -o recipe[jdk_common] | Tee-Object -FilePath c:\chef\chef-client-$timestamp.log} -ArgumentList $timestamp
Invoke-Command -ComputerName $servername -FilePath .\install\ChefStatus.ps1 -ArgumentList $hostname, chef-client-$timestamp.log