実際に変数の参照エラーなどが発生した際に、その内容を出力させる方法が分からない状況です。
エラーが発生した場合、例外が送出されるので、ログを出力させたい場所で try - except
文で例外を捕捉し、エラー内容を出力すればいいとおもいます。
スタックトレースは traceback モジュールで取得できるので、必要な情報を適宜整形してログに出力すればいいとおもいます。
import logging
import traceback
def func():
print(x) # x は未定義
try:
func()
except Exception as e:
msg = traceback.format_exc()
logging.error(msg)
追記
こちらは、例外が発生した際に、except文をいくつか書いていた場合に、上のexcept文の処理が実行されるといった解釈で良かったでしょうか...?
例えば、main() から func1() を呼び出し、func1() から func2() を呼び出しているとして、func2() 内で例外が発生したとします。
その場合、例外は func2() -> func1() -> main() と except で捕捉されるまで呼び出しもとに再送出されていくので、一番上位側 (この場合 main()) に try~except を入れておけばよいという意味です。
def func2():
raise Exception("Error")
def func1():
func2()
def main():
try:
func1()
except Exception as e:
print(e)
main()
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/15 06:49
2020/12/15 06:58 編集
2020/12/15 07:10 編集
2020/12/15 07:19 編集
2020/12/15 07:22
2020/12/15 07:29 編集
2020/12/15 07:50
2020/12/15 07:58
2020/12/15 08:12
2021/02/23 11:53
2021/02/23 11:55
2021/02/23 12:21
2021/02/23 12:37