loggingの簡単な使い方Zenn須藤ナノ📝loggingの簡単な使い方2024/01/08に公開Pythonloggingtechはじめにこんにちは、@nano_sudoです!今回は、ライブラリ紹介シリーズ第3弾として、loggingを紹介します!loggingは、Pythonの標準ライブラリでありながら、とても強力な機能を持っています。今回は、初心者の方でも簡単に理解できるように、loggingの基本的な使い方を紹介します。loggingとprintの違いprint主にデバッグ用ログレベルを指定できないloggingログレベルを指定できるログをファイルに出力できるログのフォーマットを指定できるログの出力先を複数指定できるかっこいいログを出力できる(外部ライブラリ使用)インストールloggingは、Pythonの標準ライブラリなので、インストールは不要です。各種ログレベルの出力loggingには、以下のようなログレベルがあります。(下に行くほどレベルが高い)DEBUG問題の診断のときに興味のある詳細情報を記録するために使用します。INFO正常な動作を示す情報を記録するために使用します。WARNING問題が発生したことを示す警告を記録するために使用します。(例:ディスク空き容量が少ない)ERROR重大な問題によって、ある機能を実行できないときに使用します。CRITICALプログラム自体が実行を続行できない重大な問題が発生したときに使用します。{name}!")ロガーの作成・取得loggingには、getLogger()という関数があります。この関数を使うと、ロガーを作成・取得することができます。getLogger()の引数には、ロガーの名前を指定します。名前が存在しない場合は、新しくロガーが作成されます。ロガーの名前は、__name__(現在のモジュール名)を指定するのが一般的です。これを利用して、モジュールごとにロガーを作成することができます。World!ロガーを設定するloggingには、basicConfig()という関数があります。この関数を使うと、ロガーの設定を行うことができます。[logging.<level>]ログレベルを指定します。ログレベルには、以下のようなものがあります。logging.DEBUGlogging.INFOlogging.WARNINGlogging.ERRORlogging.CRITICAL指定したログレベル以上のログが出力されます。(例:ログレベルをINFOに設定した場合、INFO、WARNING、ERROR、CRITICALのログが出力されます。[str]ログのフォーマットを指定します。ログのフォーマットには、以下のようなプレースホルダーを指定することができます。%(asctime)sログを出力した日時を指定します。%(levelname)sログレベルを指定します。%(name)sロガーの名前を指定します。%(message)sログのメッセージを指定します。datefmtログの日時のフォーマットを指定します。ログの日時のフォーマットには、strftime()と同じフォーマットを指定することができます。くわしくは、こちらをご覧ください。formatter発展的な内容になるので、ここでは紹介しません。色付きのログを出力する個人的に、richを使うのがおすすめです。richを使えば、簡単に色付きのログを出力することができます。右端にどこからログが出力されたかが表示されるので、どこからログが出力されたかわかりやすくなります。[bool]マークアップを有効にするかどうかを指定します。マークアップを有効にすると、色付きのログを出力することができます。数字や真偽値に色が付きます。[red]hello[/red]のようにすると、色付きのログを出力することができます。ログレベルはFalseでも色がつきます。[bool]トレースバックをかっこよく表示するかどうかを指定します。トレースバックをかっこよく表示すると、トレースバックが見やすくなります。※トレースバックは面倒なので省略しました(殴Richについて詳しく知りたい方は、以下の記事をご覧ください。https://zenn.dev/nano_sudo/articles/8a0e60cc24648aログをファイルに出力するloggingには、FileHandlerというクラスがあります。このクラスを使うと、ログをファイルに出力することができます。[str]ログを出力するファイル名を指定します。ファイル名を指定しない場合は、sys.stderrに出力されます。[str]ファイルを開くモードを指定します。デフォルトはa(追記)です。w(上書き)にすると、ログが上書きされます。handlers=[FileHandler(filename="log.txt")])ログを複数のファイルに出力するloggingには、handlersという引数があります。この引数を使うと、ログを複数のファイルに出力することができます。])レベルによって、出力先を変えることもできます。])もちろん、RichHandlerと組み合わせることもできます。Python公式ドキュメントhttps://docs.python.org/ja/3/howto/logging.htmlまとめお疲れ様でした!loggingは、Pythonの標準ライブラリでありながら、とても強力な機能を持っています。langchainとかをこねこねしてますバッジを贈って著者を応援しようバッジを受け取った著者にはZennから現金やAmazonギフトカードが還元されます。Proよくある質問LinksX(Twitter)GitHubメディアキットLegal利用規約プライバシーポリシ。