[解決済み] Rails 例外のスタックトレース全体をログに記録する
2022-07-06 04:26:36
質問
私はスタックトレースを記録する正しい方法を見つけようとしています。私は遭遇した この のリンクを見つけました。 logger.error $!, $!.backtrace は行くための方法ですが、それは私のために動作しません log_error を実行します。ドキュメントによると、railsが使用するruby loggerは単一の引数しか受け入れないので、errorメソッドに第2の引数を渡すことがどのように機能するかはわかりません。
不思議なことに(あるいはそうでないかもしれませんが)、第2引数はインタープリタに文句を言われることなく受け入れられます。しかし、私がそれに渡すものはすべて無視されます。
誰か私が見逃しているものを説明することができますか?エラーへの2番目の引数が何のためにあり、何がそれを食べているのかについてのどんな洞察でも?
どのように解決するのですか?
ActiveSupportのBufferedLoggerクラスのソースを見ると、第2引数に「progname」があることがわかります。これは、第1引数がnilで、ブロックを与えていないか、ブロックが真値でない値を返している場合のみ使用されます。
要するに、第2引数を使って追加で出力することはできないのです。
やりたいことは、もっと似たようなことです。
begin
raise
rescue => e
logger.error e.message
logger.error e.backtrace.join("\n")
end
ロギングの設定によっては、バックトレースの各行を繰り返し、改行を出力しないロガーがあるため、別々に出力したほうがよいかもしれません。
begin
raise
rescue => e
logger.error e.message
e.backtrace.each { |line| logger.error line }
end
関連
-
[解決済み】Rails 4 RoutingError: ルートが一致しない[POST]。
-
[解決済み] Ruby on rails "No route matches" (ルートに一致するものがない)。
-
[解決済み] Herokuの問題 : あなたが探しているページは存在しません。
-
[解決済み] 未初期化の定数 "コントローラ名"
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Ruby/RailsでHashからキーを削除して残りのHashを取得する方法は?
-
[解決済み】Railsの認証トークンを理解する
-
[解決済み】RubyにあってPythonにないもの、またその逆は何ですか?
-
[解決済み] Ruby on Railsでセッターメソッドをオーバーライドする正しい方法は何ですか?
-
[解決済み] RubyやRailsで独自のエラータイプを定義するには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Railsです。NameError: 初期化されていない定数
-
[解決済み] heroku open - no app specified
-
[解決済み] Rubyで変数をインクリメントする [重複]。
-
[解決済み] 検索 vs 発見する by vs どこに
-
[解決済み] Rails ExecJS::ProgramError in Pages#home?
-
[解決済み] rails erb フォームヘルパー options_for_select :selected
-
[解決済み] Railsです。gemを使った特定バージョンのライブラリのアンインストール
-
[解決済み] railsアプリケーションでCookieのオーバーフロー?
-
[解決済み] ActionController::RoutingError: 初期化されていない定数MicropostsController
-
[解決済み] Heroku Error R14 (Memory quota exceeded): How do I solve this?