[解決済み] Ruby Logger のログをファイルだけでなく標準出力にも出力するにはどうしたらいいですか?
2023-01-05 13:47:01
質問
ロガーでティー機能のようなものがあります。
どのように解決するのですか?
を記述することで、擬似的な
IO
クラスで、複数の
IO
オブジェクトに書き込むクラスです。 のようなものです。
class MultiIO
def initialize(*targets)
@targets = targets
end
def write(*args)
@targets.each {|t| t.write(*args)}
end
def close
@targets.each(&:close)
end
end
そして、それをログファイルとして設定します。
log_file = File.open("log/debug.log", "a")
Logger.new MultiIO.new(STDOUT, log_file)
毎回
Logger
を呼び出す
puts
あなたの
MultiIO
オブジェクトに書き込むと、両方の
STDOUT
とログファイルの両方に書き込まれます。
編集してください。
私は先に、残りのインターフェイスを把握しました。 ログデバイスは
write
と
close
(ただし
puts
). としている限り
MultiIO
がそれらに応答し、実際の IO オブジェクトにプロキシする限り、 これは動作するはずです。
関連
-
[解決済み】Pythonのロガーがログファイルに加えて標準出力にも全メッセージを出力するようにする。
-
[解決済み] ファイルにログを記録し、標準出力に印刷するためのロガー設定
-
[解決済み] ファイルを grep して、その周辺の行をいくつか表示する?
-
[解決済み] svn log -v' のように 'git log' にファイル名を表示させる方法
-
[解決済み] Ruby on RailsでJSON出力を "きれい "にフォーマットする方法
-
[解決済み] pytestの実行中に作成された通常の印刷出力を見るにはどうすればよいですか?
-
[解決済み] Rubyでファイルに書き込むには?
-
[解決済み】Rubyで先頭のゼロを出力するには?
-
[解決済み] Logbackで、ロガーの異なるレベルのログを異なる宛先に記録するように設定するにはどうしたらよいですか?
-
[解決済み] Rubyのプライベートモジュールメソッド
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] key => "value"`と`key: "value"`のハッシュ表記に違いはありますか?
-
[解決済み] Rubyオプションのパラメータ
-
[解決済み] Rubyのsend()は何をするのですか?
-
[解決済み] doブロックと中括弧{}の使い分け
-
[解決済み] 文字列を DateTime に変換する
-
[解決済み] MacでRubyを1.9.xにアップデートするには?
-
[解決済み] Rubyの基本的なプロジェクトはどのように設定するのですか?
-
[解決済み] インスタンス変数の値をその名前で取得する
-
[解決済み] raise "foo"`と`raise Exception.new("foo")` の違いは何ですか?
-
[解決済み] 配列に要素がない場合、その要素を追加します。