在 Chef 中记录 Java 异常

Logging Java Exceptions in Chef

我正在使用 chef 调用一个 jar,例如:

execute "publish" do
  Chef::Log.info("About to published")
  command "java -jar myjar.jar"
  Chef::Log.info("Published")      
end

现在万一在执行myjar的时候抛出异常,同样在控制台上是看不到的。有什么方法可以在控制台本身中查看相同内容吗?

Chef 不提供任何机制来查看命令指令的输出。解决方法是写入文件,然后从中读取。

output  = "/tmp/output.tmp"


execute "publish" do
  Chef::Log.info("About to published")
  command command "java -jar myjar.jar &> #{output}"
  action :run
  Chef::Log.info("Published")
end

# Outputting logs to console
ruby_block "log" do
    block do
        print "\n"
        File.open(output).each do |line|
            print line
        end
    end
end