summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2017-07-28 00:48:03 -0500
committerStan Hu <stanhu@gmail.com>2017-07-28 00:48:03 -0500
commit9bc176b2c39f1c27ce8ed4c13cf06e53331c16c9 (patch)
tree4e9ebd96d3b43be8c99f6afdad5296dfbaef55e6
parent02b25598cbedaaec96d8c9e52de7f969a5eb71a1 (diff)
downloadgitlab-ce-9bc176b2c39f1c27ce8ed4c13cf06e53331c16c9.tar.gz
Add remote IP, user ID and username to JSON lograge outputsh-augment-lograge-output
This makes the logs a bit more useful to search requests by users.
-rw-r--r--app/controllers/application_controller.rb10
-rw-r--r--config/initializers/lograge.rb5
2 files changed, 14 insertions, 1 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 43462b13903..d14b1dbecf6 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -70,6 +70,16 @@ class ApplicationController < ActionController::Base
protected
+ def append_info_to_payload(payload)
+ super
+ payload[:remote_ip] = request.remote_ip
+
+ if current_user.present?
+ payload[:user_id] = current_user.id
+ payload[:username] = current_user.username
+ end
+ end
+
# This filter handles both private tokens and personal access tokens
def authenticate_user_from_private_token!
token = params[:private_token].presence || request.headers['PRIVATE-TOKEN'].presence
diff --git a/config/initializers/lograge.rb b/config/initializers/lograge.rb
index c9a515dfcd5..21fe8d72459 100644
--- a/config/initializers/lograge.rb
+++ b/config/initializers/lograge.rb
@@ -14,7 +14,10 @@ unless Sidekiq.server?
config.lograge.custom_options = lambda do |event|
{
time: event.time.utc.iso8601(3),
- params: event.payload[:params].except(%w(controller action format))
+ params: event.payload[:params].except(*%w(controller action format)),
+ remote_ip: event.payload[:remote_ip],
+ user_id: event.payload[:user_id],
+ username: event.payload[:username]
}
end
end