こんにちは。投資エンジニアの三年坊主(@SannenBouzu)です。 今回は、Pythonでログを出力したい人の疑問に答えます。 Pythonでログを出力するための基本的な書き方を教えてほしい。自分で作ったPythonプログラムが異常なく動いたか、実行中や実行後に一目で確認したい。
はじめに Pythonは比較的わかりやすい言語だと思いますが、ロガー周りは少しややこしいです。 プログラムを作成する場合に、printで出力するのも問題はないのですが、ある程度の規模のプログラムを作成する場合は、ログ戦略を工夫する必要があります。 今回の記事ではプログラムでの出力をprintから少し高度なことしたいなー、という人向けの記事になります。 loggerを使う場合の注意点なども書いているので、初学者以外の方も学びがあるかもしれません。 前提知識:ログレベルについて プログラムからは様々なログが出力されると思います。 通常、重要なログもあれば、そこまで重要ではないがあると嬉しいなというログもあります。 ログをある程度グループ分けして出力することで、運用時の調査がよりスムーズになるように設計することが多いです。 例えば、システムに何か問題があったときに、とりあえずエラーのログだけを絞
# 良い例 from logging import getLogger # 途中で誤ってloggingを汚さないように個別にimport logger = getLogger(__name__) logger.debug('this is good logging') logger作成時に__name__としておくことで、出力に__name__の値を表示することが出来る。 ログレベルについて loggingにはログレベルが設定でき、setLevelによりどのログレベルまで表示を行うかを制御することが可能。 ログレベルには、DEBUG, INFO, WARNING, ERROR, CRITICALの5つがあり、ユーザーが任意に指定する必要がある。これらはloggerや後述の各ハンドラーにも個別に設定することが出来る。 from logging import getLogger, INFO l
初心者向けにPythonでloggingを使う方法について解説しています。エラーの出力やデータ情報の出力などログを出力する際に使います。エラーが起きた際には必ず使う必要が出てくるので、書き方を覚えておくとスムーズに開発が進むでしょう。 テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査 今回は、Pythonでloggingを使う方法について、テックアカデミーのメンター(現役エンジニア)が�実際のコードを使用して初心者向けに解説します。 logg
''.join(traceback.TracebackException.from_exception(exc).format()) import traceback try: 1/0 except Exception as e: t = traceback.format_exception(type(e), e, e.__traceback__) print(t) # ['Traceback (most recent call last):\n', # ' File "/path/to/script.py", line 4, in <module>\n 1/0\n', # 'ZeroDivisionError: division by zero\n'] この書き方は冗長です。エラーひとつに対して etype, value, tb の3つの引数を与えなくてはなりません。 (引数 e_typ
例外が発生するとログにエラー発生箇所の呼び出し履歴が順に表示されますが、こういったログをスタックトレースと呼びます。tracebackモジュールを使用するとスタックトレースを取得することができます。 tracebackモジュール 基本的な使い方 try文で例外処理は施したものの、どういった原因かを調査するためにスタックトレースをログなどに出力したい場合があります。JavaのprintStackTrace等、言語によっては例外オブジェクト自身にスタックトレースを表示したり取得するメソッドが予め用意されていますが、Pythonの場合は標準ライブラリのtracebackを別途インポートして使用する必要があります。まずは簡単な例で使い方を見てみましょう。 import traceback try: hoge = 1/0 except Exception as e: # 文字列を取得する forma
pythonを使用してExcelファイルの操作を勉強しています。 本日の気づき(復習)は、ログの出力に関してです。 pythonでExcelを操作するため、openpyxlというパッケージを使用しています。 今まではとりあえずプログラムを記述することに注力してきました。 今後の事を考えると、ちゃんと処理が実行できているか確認するためにログを出力していきたいです。 loggingモジュール 標準ライブラリなので追加インストールは必要ありません。 https://docs.python.org/ja/3/library/logging.html 今回はこちらで入力した数だけブックを作り、一緒にログファイルも作る記述をしてみます。 ログファイルには処理の開始と終了、エラー発生時にログが出力されるようにしたいです。 logging.basicConfigメソッド logging.basicConf
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く