Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

Ruby on Rails | Rails標準のコントローラーのパラメータログを無効化する

概要

Rails標準のコントローラーのパラメータログを無効化する

内容

Rails標準のコントローラーのパラメータログを無効化します。
独自定義のものに差し替えるため自分でapplication_controller.rbに定義します。

無効化設定

config/environment.rb

module ActionController
  class LogSubscriber < ActiveSupport::LogSubscriber
    # 標準のControllerトレースログを無効化
    # application_controller.rbで独自定義したログを利用する。
    def start_processing(event)
    end
  end
end

独自定義

application_controller.rb

around_action :logging_filter

def logging_filter
  class_name = "#{params[:controller].capitalize}Controller"
  method_name = params[:action]
  login = current_user.login if current_user

  start_time = Time.now_msec
  trace_start = {se_flg: "start", user: login, class_name: class_name, method_name: method_name, total_time: "", params: params}
  logger.debug trace_start

  ret = yield

  end_time = Time.now_msec
  trace_end = {se_flg: "end", user: login, class_name: class_name, method_name: method_name, total_time: "#{(end_time - start_time).to_s} msec", params: ""}
  logger.debug trace_end
end