How to log user_name in Rails?

后端 未结 12 1693
遇见更好的自我
遇见更好的自我 2020-12-15 06:52

I use Devise in Rails 3. I want to see name of current_user in production.log.

I would like to configure rails like this:

config.log_tags = [:user_na         


        
12条回答
  •  臣服心动
    2020-12-15 07:27

    What almost worked for me (Rails 3.2.22.2) is the answer from here: http://benjit.com/rails/logger/2016/02/26/getting-admin-user-into-rails-logfile/

    This assumes that the cookie_jar object responds to encrypted. However it wasn't the case for me. What ultimately worked for me is as follows:

    config/initializers/logging.rb:

    Rails.configuration.log_tags = [
      lambda { |req|
        session_key = Rails.application.config.session_options[:key]
        session_data = req.cookie_jar.signed[Rails.application.config.session_options[:key] ]
        warden_data = ( session_data["warden.user.user.key"]|| [[]])
        admin_user = warden_data[0][0]
        "u: #{admin_user || 0}"
      }
    ]
    

提交回复
热议问题