【问题标题】:What does Chef::Log.info do exactlyChef::Log.info 究竟做了什么
【发布时间】:2019-03-22 14:12:28
【问题描述】:

我正在尝试在我的 Chef 食谱中添加一些日志记录。

我注意到在其他食谱中使用了Chef::Log.info,例如:

Chef::Log.info("Connection to database '#{dbname}' on '#{host}' failed")

我想知道这是做什么的。日志不会出现在任何地方,不在控制台,不在日志文件中。 Chef 网站似乎也没有记录为什么以及如何使用它。

为什么要添加这样的信息日志语句?你在哪里可以看到这样的消息?这需要高级功能吗?

我的knife.rb 的 log_level 如下

log_level                :info
log_location             STDOUT

【问题讨论】:

    标签: logging chef-infra


    【解决方案1】:

    您可以通过设置 -l 标志来设置厨师运行的日志级别。所以:

    chef-client -l info
    

    将导致您的信息日志消息出现。另外,请注意有两种方法可以生成日志消息。一、你展示的方法,会导致chef run的资源收集阶段出现消息;另一个,如下所示,将导致在提供程序执行阶段出现日志消息。

    log 'my log messsage' do
      level :info
    end
    

    【讨论】:

    • 第二个选项对我有用。我可以看到该消息出现在控制台中。第一个没有出现在任何地方。我希望它也可以根据knife.rb config出现在控制台中
    • 您是否检查过它是否出现在主厨运行的顶部附近?这就是我所期望的。
    【解决方案2】:

    如果您想在 chef-client 期间或引导期间查看信息,简单的 puts 语句就可以完成工作。

    puts ("Connection to database '#{dbname}' on '#{host}' failed")  
    

    Chef::log.info 仅在您运行 chef-client -l info 时有效。

    【讨论】:

    • @wscourge:puts 不是一个正确的选项,因为它不会按时间顺序打印消息。在运行任何刀命令时使用 -VV 因为它会给出详细信息,并且您也可以使用调试方法。您可以在 Chef docs 中引用相同的内容。 docs.chef.io/debug.html
    猜你喜欢
    • 2014-11-24
    • 2012-07-23
    • 2016-09-10
    • 2023-03-15
    • 2012-10-17
    • 2021-06-04
    • 1970-01-01
    • 2018-07-30
    • 2019-10-06
    相关资源
    最近更新 更多