#Python パッケージとログ ログ
1. パッケージ
パッケージ: __init__.py ファイルがフォルダー内にあるパッケージは、複数のモジュールを管理するために使用されます。 パッケージの構造は次のとおりです:bake ├── __init__.py ├── api ├── __init__.py ├── policy.py └── versions.py ├── cmd ├── __init__.py └── manage.py └── db ├── __init__.py └── models.py
import bake.api.policy bake.api.policy.get() #导入的名字太长了,可以起别名 import bake.api.policy as p p.get() #from 导入在__init__.py修改 from . import policy #我们需要在policy文件中向sys.path添加了当前的路径 import os import sys sys.path.insert(os.path.dirname(__file__)) #print(__file__)查看一下 #使用__all__,在__init__.py中 __all__ = ["policy"] #或 from . import policy
Python ビデオ チュートリアル 」
#、ログ モジュール
ログ モジュールは、ソフトウェアのさまざまなステータス、トランザクション レコード、エラー レコード、ログイン レコードを記録するために使用されます...1. 機能的にシンプルな設定:
import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error message') logging.critical('critical message')
2. ログ レベル、ログ モード、入力場所の柔軟な構成 (低構成バージョン)
ログの書き込みのみで、公開画面には出力できませんimport logging logging.basicConfig(level = logging.DEBUG, format = '%(astime)s %(filename)s [line:%(lineno)d] %(levelname)s %(message)s', datefmt = '%Y-%m-%d %H:%M:%S', filename = 'test.log', filemode = 'a') dic = {"key":123} logging.debug(dic) num = 100 logging.info(f"用户余额:{num - 50}") try: num = int(input("请输入数字:")) except Exception as e: logging.warning("e") logging.error('error message') logging.critical('critical message')
ロギング モジュールのデフォルトの動作は、basicConfig() の特定のパラメーターを通じて変更できます。使用可能なパラメータは次のとおりです:
filename: ログが指定されたファイルに保存されるように、指定されたファイル名で FiledHandler を作成します。 filemode: ファイルを開くモード。このパラメータはファイル名が指定されたときに使用されます。デフォルト値は「a」ですが、「w」としても指定できます。 format: ハンドラーが使用するログの表示形式を指定します。 datefmt: 日付と時刻の形式を指定します。 level: ロギング レベルを設定します。 stream: 指定されたストリームで StreamHandler を作成します。出力を sys.stderr、sys.stdout、またはファイル (f=open(‘test.log’,’w’)) に指定できます。デフォルトは sys.stderr です。ファイル名パラメータとストリームパラメータの両方がリストされている場合、ストリームパラメータは無視されます。フォーマット パラメータで使用できるフォーマット文字列:
%(name)s ロガーの名前 %(levelno)s 数値形式%(levelname)s のログ レベル テキスト形式のログ レベル %(pathname)s ログ出力関数を呼び出すモジュールのフル パス名には、が含まれていない可能性があります。
% (filename)s ログ出力関数を呼び出すモジュールのファイル名%(module)s ログ出力関数を呼び出すモジュール名%(funcName) s ログ出力関数を呼び出す関数名%(lineno)d ログ出力関数を呼び出す文が配置されているコード行 %(created)f 現在時刻時間を表す UNIX 標準浮動小数点数で表されます %(relativeCreated)d ログ情報を出力するときにロガーが作成されてからのミリ秒数 %(asctime)s 現在の時刻文字列の形式で。デフォルトの形式は「2003-07-08 16:49:45,896」です。カンマの後に続くのは、ミリ秒単位のスレッド ID %(thread)d です。 %(threadName) のスレッド名が存在しない可能性があります。 %(process)d プロセス ID が存在しない可能性があります。 %(message) のユーザーによって出力されたメッセージが存在しない可能性があります3.logger オブジェクト構成 (中バージョン)
import logging logger = logging.getLogger() # 创建一个logger fh = logging.FileHandler('test.log',mode="a",encoding='utf-8') # 文件 ch = logging.StreamHandler() # 屏幕 formatter = logging.Formatter('%(asctime)s - %(name)s - %(filename)s - [line:%(lineno)d] - %(levelname)s - %(message)s') # 将屏幕和文件都是用以上格式 logger.setLevel(logging.DEBUG) # 设置记录级别 fh.setFormatter(formatter) # 使用自定义的格式化内容 ch.setFormatter(formatter) logger.addHandler(fh) #logger对象可以添加多个fh和ch对象 logger.addHandler(ch) logger.debug('logger debug message') logger.info('logger info message') logger.warning('logger warning message') logger.error('logger error message') logger.critical('logger critical message')
以上がPython パッケージとロギングの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。