wkhtmltopdfで PDF を生成するためにPDFKit Gemを実行しています。
私のプロジェクトでスペックを実行したり PDF を生成したりすると、wkhtmtopdf はその出力をstdout
/ 別のログにリークしますが、すべての出力をアプリケーションの別のログファイル pdfkit.log に生成したいと考えています。
wkhtmltopdf の呼び出しは簡単です
result = IO.popen(invoke, "wb+") do |pdf|
pdf.puts(@source.to_s) if @source.html?
pdf.close_write
pdf.gets(nil)
end
IO.popen > Kernel.spawn documentation に従って、IO.popen
すべての出力をログファイルに入れるように呼び出しを再構成しようとしました(:err => [:child, :out]
マージstderr
してstdout
、:out=>[File.join(Rails.root, 'log', 'pdfkit.log'), "w"]
指定されたログファイルに書き込む必要があります)
result = IO.popen(invoke, "wb+", :out=>[File.join(Rails.root, 'log', 'pdfkit.log'), "w"], :err=>[:child, :out]) do |pdf|
pdf.puts(@source.to_s) if @source.html?
pdf.close_write
pdf.gets(nil)
end
メソッドの上書きは行われていますが、残念ながら期待どおりに動作しません。エラーが のオプションを誤解していることはわかっていますがIO.popen
、方法がわかりません..