やったこと
Rails5 で例外が発生したときにどこで発生したのかを知るため
Exception クラスの backtrace を使ってみます。
確認環境
$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
$ rails --version
Rails 5.2.3
調査
ソースコード編集
app/controllers/tasks_controller.rb
class TasksController < ApplicationController
def index
begin
@task = Task.new
private_dummy
rescue => e
logger.debug(e.backtrace.join("\n"))
logger.info('logger.info')
logger.info(e)
end
end
def private_dummy
raise 'private_dummy'
end
end
ログ確認
log/development.log
Started GET "/" for ::1 at 2019-06-06 22:12:58 +0900
Processing by TasksController#index as HTML
/Users/xxxxx/sample2/app/controllers/tasks_controller.rb:25:in `private_dummy'
/Users/xxxxx/sample2/app/controllers/tasks_controller.rb:16:in `index'
... (省略)
logger.info
private_dummy