summaryrefslogtreecommitdiff
path: root/lib/gitlab/database/migrations/observers/query_log.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/database/migrations/observers/query_log.rb')
-rw-r--r--lib/gitlab/database/migrations/observers/query_log.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/gitlab/database/migrations/observers/query_log.rb b/lib/gitlab/database/migrations/observers/query_log.rb
new file mode 100644
index 00000000000..45df07fe391
--- /dev/null
+++ b/lib/gitlab/database/migrations/observers/query_log.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Database
+ module Migrations
+ module Observers
+ class QueryLog < MigrationObserver
+ def before
+ @logger_was = ActiveRecord::Base.logger
+ @log_file_path = File.join(Instrumentation::RESULT_DIR, 'current.log')
+ @logger = Logger.new(@log_file_path)
+ ActiveRecord::Base.logger = @logger
+ end
+
+ def after
+ ActiveRecord::Base.logger = @logger_was
+ @logger.close
+ end
+
+ def record(observation)
+ File.rename(@log_file_path, File.join(Instrumentation::RESULT_DIR, "#{observation.migration}.log"))
+ end
+ end
+ end
+ end
+ end
+end