someone call me

rubyで自分がどう呼び出されているかを調べる

printstacktraceのようなもの。
callerと書けば、どこから呼ばれたのかがわかる。

本番環境でなんか2件データが出来る時があって、どうしても原因がわからないのでどこから呼ばれてるのか仕込んでみた。

1
2
3
4
5
6
7
require 'logger'
logger = Logger.new('log/debug.log', 'daily')
logger.level = Logger::DEBUG
logger.info( "#####" + DateTime.now.strftime("%Y年%m月%d日 %H時%M分%S秒") + "#####")
logger.info(self.inspect)
logger.info(caller.join("  n"))
logger.info( "############")

ログは一日置きにローテートさせてみた。
もう一週間ぐらいたつけど、罠しかけた途端現象が起きなくなるという。

Comments