[解決済み] Railsで何かを独立したログファイルに記録するにはどうすればよいですか?
2022-04-25 16:18:36
質問
railsで、ある情報を標準のdevelopment.logやproduction.logではなく、別のログファイルに記録したいのですが、どうすればいいですか?私はモデルクラスからこのロギングを行いたいと思います。
どのように解決しますか?
任意のモデルの内部から、Loggerオブジェクトを自分で作成することができます。ファイル名をコンストラクタに渡すだけで、そのオブジェクトを通常のRailsの
logger
:
class User < ActiveRecord::Base
def my_logger
@@my_logger ||= Logger.new("#{Rails.root}/log/my.log")
end
def before_save
my_logger.info("Creating user with name #{self.name}")
end
end
ここでは、ロガーをメモするために class 属性を使用しました。この方法では、Userオブジェクトが作成されるたびにロガーが作成されることはありませんが、そうする必要はないでしょう。を注入することができることも覚えておいてください。
my_logger
メソッドを直接
ActiveRecord::Base
クラス (または、あまりパッチを適用したくない場合は、独自のスーパークラス) に追加して、アプリのモデル間でコードを共有できるようにします。
関連
-
[解決済み】Pythonのロガーがログファイルに加えて標準出力にも全メッセージを出力するようにする。
-
[解決済み] ファイルにログを記録し、標準出力に印刷するためのロガー設定
-
[解決済み] ファイルを grep して、その周辺の行をいくつか表示する?
-
[解決済み] 文字列フォーマット:% vs. .format vs. f-stringリテラル
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] svn log -v' のように 'git log' にファイル名を表示させる方法
-
[解決済み] Rails 4で懸念事項を使用する方法
-
[解決済み] 作者と日付を含む git log からの最短出力
-
[解決済み】Railsの認証トークンを理解する
-
[解決済み】Pythonのエラーをデバッグ情報とともにログに記録する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】取得中。「プロジェクトのクローンとマイグレート後に、「マイグレーションは保留中です。この問題を解決するには 'bin/rake db:migrate RAILS_ENV=development' を実行してください。
-
[解決済み】コントローラでJSONをレンダリングする
-
[解決済み] Ruby on Railsのランナー
-
[解決済み] ウェブパッカーがアプリケーションを見つけ出せない
-
[解決済み] Rubyで変数をインクリメントする [重複]。
-
[解決済み] どなたか、collection_selectをわかりやすく説明していただけませんか?
-
[解決済み] DestroyとDeleteの違い
-
[解決済み] nil:NilClass の未定義メソッド `each' - しかし、なぜ?
-
[解決済み] Ruby:Rubyの配列にinclude.の反対はある?
-
[解決済み] rails/rubyでgroup_byを使用する。