Chef Infra Language: Logging
Log Entries
Chef::Log will print log entries to the default logger that’s configured for the machine on which Chef Infra Client is running. (To create a log entry that’s built into the resource collection, use the log resource instead of Chef::Log.)
Supported log levels
| Log Level | Syntax |
|---|---|
| Fatal | Chef::Log.fatal('string') |
| Error | Chef::Log.error('string') |
| Warn | Chef::Log.warn('string') |
| Info | Chef::Log.info('string') |
| Debug | Chef::Log.debug('string') |
Examples
The following example shows a series of fatal Chef::Log entries:
unless node['splunk']['upgrade_enabled'] Chef::Log.fatal('The chef-splunk::upgrade recipe was added to the node,') Chef::Log.fatal('but the attribute `node["splunk"]["upgrade_enabled"]` wasn\'t set.') Chef::Log.fatal('I am bailing here so this node doesn\'t upgrade.') raise end service 'splunk_stop' do service_name 'splunk' supports status: true action :stop end if node['splunk']['is_server'] splunk_package = 'splunk' url_type = 'server' else splunk_package = 'splunkforwarder' url_type = 'forwarder' end splunk_installer splunk_package do url node['splunk']['upgrade']["#{url_type}_url"] end if node['splunk']['accept_license'] execute 'splunk-unattended-upgrade' do command "#{splunk_cmd} start --accept-license --answer-yes" end else Chef::Log.fatal('You didn\'t accept the license (set node["splunk"]["accept_license"] to true)') Chef::Log.fatal('Splunk is stopped and can\'t be restarted until the license is accepted!') raise end The following example shows using multiple Chef::Log entry types:
... begin aws = Chef::DataBagItem.load(:aws, :main) Chef::Log.info("Loaded AWS information from DataBagItem aws[#{aws['id']}]") rescue Chef::Log.fatal("Couldn't find the 'main' item in the 'aws' data bag") raise end ...