Pythonでは、エラーハンドリングとログ出力は非常に重要な部分を占めています。特に、logging
モジュールを使用することで、エラーやステータス情報を効果的にログ出力することが可能です。
loggingモジュールの基本
Pythonのlogging
モジュールには、ログを出すためのいくつかの方法があります。それらは以下の通りです。
logging.debug()
logging.info()
logging.warning()
logging.error()
logging.critical()
これらの違いはログレベル(log level)によるもので、緊急度などに応じて設定しておけば、「開発時は debug も含めて出力」「本番では warn 以上(または info 以上)」のように出力するレベルを変更できます。
logging.exceptionの使用
logging.exception()
は、例外処理時にexcept:
の中で利用することを想定しています。しかし、実装するときに勘違いしている例をよく見かけます。
以下に、その一例を示します。
try:
int("aaa")
except Exception as e:
logging.exception(e)
このコードを実行すると、エラーメッセージが2回重複して出力されます。これは、logging.exception()
が自動的に例外情報を取得し、ログメッセージに追加するためです。
そのため、以下のように書くことを推奨します。
try:
int("aaa")
except:
logging.exception("What is doing when exception happens.")
このように書くことで、例外だけを出力するのではなく、開発者が理解しやすいメッセージを付与することができます。
まとめ
Pythonのlogging
モジュールを使用することで、エラーハンドリングとログ出力を効果的に行うことができます。特に、logging.exception()
を適切に使用することで、開発者が理解しやすいエラーメッセージを出力することが可能になります。