Chef infra 如何在Amazon OpsWorks上设置Chef的日志输出级别?

Chef infra 如何在Amazon OpsWorks上设置Chef的日志输出级别?,chef-infra,aws-opsworks,Chef Infra,Aws Opsworks,我的问题类似于: 我希望能够看到我的运行配方的控制台输出。特别是,我的配方无法启动JBoss,因为没有设置JAVA\u HOME。我花了一整天的时间才弄明白这一点,因为语句JAVA\u HOME是未定义的没有打印到Chef输出中。运行chef solo时,可以通过在命令中附加-l debug来打开调试输出,如:chef solo-c solo.rb-j node.json-l debug 但是,在使用Amazon OpsWorks时,没有这样的选项: sudo opsworks-agent-cl

我的问题类似于:

我希望能够看到我的运行配方的控制台输出。特别是,我的配方无法启动JBoss,因为没有设置
JAVA\u HOME
。我花了一整天的时间才弄明白这一点,因为语句
JAVA\u HOME是未定义的
没有打印到Chef输出中。运行chef solo时,可以通过在命令中附加
-l debug
来打开调试输出,如:
chef solo-c solo.rb-j node.json-l debug

但是,在使用Amazon OpsWorks时,没有这样的选项:

sudo opsworks-agent-cli run_command [activity] [date] [/path/to/valid/json.file]
如何向
运行\u命令添加日志级别?

尝试运行:

cd /opt/aws/opsworks/current bundle exec chef-solo -l debug -c conf/solo.rb -j /var/lib/aws/opsworks/chef/XXX.json cd/opt/aws/opsworks/current bundle exec chef solo-l debug-c conf/solo.rb-j/var/lib/aws/opsworks/chef/XXX.json 资料来源:

每个Chef运行都会生成一个日志,该日志提供运行的详细描述,是一个有价值的故障排除资源。要指定日志中的详细信息量,请将Chef::log.level语句添加到指定所需日志级别的自定义配方中。默认值为:info。下面的示例显示如何将Chef日志级别设置为:debug,它提供了运行的最详细描述

Chef::Log.level = :debug
在您的食谱中,添加以下内容

require 'chef/log'
Chef::Log.level = :debug
...
您还可以在堆栈设置中使用自定义_json属性来控制日志

{"opsworks":{"chef_log_level":"debug"}}

上面打开了chef和opsworks的debug,但还没有显示您可能使用bash或其他脚本运行的命令的输出。

找到解决此问题的方法了吗?回答你自己的问题没关系。请不要忘记将答案标记为正确!:)