生産ログは長く、エラーだけではありません。私はちょうどでエラー/例外を除いて、2番目のログファイルをしたいと思います。Railsのエラーを別のログファイルに記録する方法はありますか?
が、これは可能ですか?
私たちはレールを使用しています。2.x
ありがとうございました。
生産ログは長く、エラーだけではありません。私はちょうどでエラー/例外を除いて、2番目のログファイルをしたいと思います。Railsのエラーを別のログファイルに記録する方法はありますか?
が、これは可能ですか?
私たちはレールを使用しています。2.x
ありがとうございました。
例えば、/ログというファイルに
コントローラとビューのためにnew_logger = Logger.new('log/exceptions.log')
new_logger.level = Logger::ERROR
new_logger.error('THIS IS A NEW EXCEPTION!')
ActiveRecord::Base.logger = new_logger
ActionViewロガーを持っていないので、それが依存して(それが自分のロガーは、だexceptions.logすべてのActiveRecord ::ベース・エラーをログに記録しますActionControllerのロガーで):
一般的に例外に対してこれを行う方法はありますか?またはerb /コントローラのエラーを自分のファイルにも記録するのでしょうか? –
コントローラ/ビューの操作方法を公開しました。 –
どのようにエラーだけが発生しますか?あなたは明らかに情報を記録しており、それはexceptions.logで終わりますか? – Khash
以下を試してください。あなたのコントローラにrescue_fromメソッドを入れてください。
これはテストしていません。あなたがRailsの2.1(もテストされていない)を使用している場合でも、多分それは正しい方向
class ApplicationController < ActionController::Base
rescue_from StandardError do |exception|
new_logger = Logger.new('log/exceptions.log')
new_logger.info('THIS IS A NEW EXCEPTION!')
new_logger.info(exception.message)
new_logger.info(exception.backtrace)
# Raise it anyway because you just want to put it in the log
raise exception
end
end
に入ります
class ApplicationController < ActionController::Base
def rescue_action_in_public(exception)
new_logger = Logger.new('log/exceptions.log')
new_logger.info('THIS IS A NEW EXCEPTION!')
new_logger.info(exception.message)
new_logger.info(exception.backtrace)
# Raise it anyway because you just want to put it in the log
raise exception
end
end
の
可能複製[独立したログ・ファイル内のRailsで何かを記録するには?]( http://stackoverflow.com/questions/337739/how-to-log-something-in-rails-in-an-independent-log-file) – fl00r
私はそれが重複しないと思う - それは別の問題です。手動で別のファイルにログを記録するのではなく、標準ログファイルをより細かい部分に自動的に分割する方法について説明します。 –