私は、分析のための多くのリクエストを生成するレール3アプリを持っています。残念ながら、これはログを壊し、私は実際に気にしているメインページのリクエストを失います。これらの要求を別々のログファイルに分けたいと思います。特定のログファイルに行く特定のアクションを指定する方法はありますか?または、これらのアクションのロギングレベルを減らし、ログファイルを読み戻すときに特定のレベルのログのみを表示する方法がありますか?アクション毎のレールログを分離する
1
A
答えて
6
私はthis siteを見つけました。これは、ログアクションをサイレンシングするためのミドルウェアの使用について話しました。私は同じ種類のアイデアを使用し、どのアクションが呼び出されたかに応じてロガーをスワップするミドルウェアを作成しました。ここで私はnoisy_logger.rb/libに
class NoisyLogger < Rails::Rack::Logger
def initialize app, opts = {}
@default_log = Rails.logger
# Put the noisy log in the same directory as the default log.
@noisy_log = Logger.new Rails.root.join('log', 'noisy.log')
@app = app
@opts = opts
@opts[:noisy] = Array @opts[:noisy]
super app
end
def call env
if @opts[:noisy].include? env['PATH_INFO']
logfile = @noisy_log
else
logfile = @default_log
end
# What?! Why are these all separate?
ActiveRecord::Base.logger = logfile
ActionController::Base.logger = logfile
Rails.logger = logfile
# The Rails::Rack::Logger class is responsible for logging the
# 'starting GET blah blah' log line. We need to call super here (as opposed
# to @app.call) to make sure that line gets output. However, the
# ActiveSupport::LogSubscriber class (which Rails::Rack::Logger inherits
# from) caches the logger, so we have to override that too
@logger = logfile
super
end
end
に入れ、その後、これは設定/初期化子に行くミドルウェア、/ noisy_log.rb
MyApp::Application.config.middleware.swap(
Rails::Rack::Logger, NoisyLogger, :noisy => "/analytics/track"
)
は、誰かを役に立てば幸いです!
0
1つのオプションは、New Relicのようなサービスを使用しています。このサービスは、必要なスコープ(アクションごと)を提供します。
関連する問題
- 1. cronスクリプトを毎分実行する方法毎分30分
- 2. ボタンのアクションとセグの動作を分離
- 3. Asp.Net MVCアクション - 懸念の分離/単一の責任原則
- 4. Reduxでは、アクションとレデューサーを分離するのはなぜですか?
- 5. AsyncTaskとUIスレッドの分離/分離
- 6. 毎分リフレッシュするWebスクレイピングデータ
- 7. Mathematica - ノートブックを分離する
- 8. Androidコンタクトプロバイダを分離する
- 9. ユニットテストを分離する
- 10. Javaマルチスレッドアレイを分離する
- 11. テキストファイルを分離する
- 12. ランcronジョブ毎時間の毎秒分
- 13. スプリング分離サポート? MSQLスナップショット分離
- 14. 毎分VBAアップデートモジュール
- 15. 毎分Cronjob
- 16. Log4j RollingFileAppender毎分
- 17. n毎分
- 18. テストデータの分離
- 19. モジュールの分離
- 20. ドッカーサービスの分離
- 21. リストをx回毎に分割する
- 22. 毎分クォーツを実行するCronトリガー
- 23. の分離のdiv
- 24. SuiteletのPOSTリクエストを分離する
- 25. 何百ものイベントハンドラを分離する
- 26. bs4/beautifulSoupの属性を分離する
- 27. スタックを分離するためのツール
- 28. アクセスのデータを分離する
- 29. csvファイルのバイナリデータ(blob)を分離する
- 30. メールのスレッドを分離するjavax.mail
try http://agilewebdevelopment.com/plugins/tagged_logger –