ホームページ > バックエンド開発 > Python チュートリアル > Python パッケージとロギングの概要

Python パッケージとロギングの概要

爱喝马黛茶的安东尼
リリース: 2019-08-08 17:55:18
転載
2301 人が閲覧しました

Python パッケージとロギングの概要

#Python パッケージとログ ログ

1. パッケージ

パッケージ: __init__.py ファイルがフォルダー内にあるパッケージは、複数のモジュールを管理するために使用されます。

パッケージの構造は次のとおりです:

bake            
    ├── __init__.py       
    ├── api               
        ├── __init__.py
        ├── policy.py
        └── versions.py
  ├── cmd             
    ├── __init__.py
    └── manage.py
  └── db                
      ├── __init__.py
      └── models.py
ログイン後にコピー

同時に test.py も作成しますベイクとしてのレベルインポートpolicy.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
ログイン後にコピー

概要:

import package.package.package

from package.package.package import module

Path :

絶対: 外側の層からインポートします。

相対: 現在の (.) または親 (..) からインポートします。

相対パスを使用する場合は、次のことを行う必要があります。パッケージの最後にある外層と同じレベルです

from package import *

__init__.py

python2 で操作を行う必要があります: インポート フォルダー ( __init__.py) はエラーを報告します

python3: インポート フォルダー (__init__.py なし) はエラーを報告しません

関連する推奨事項: 「

Python ビデオ チュートリアル

#、ログ モジュール

ログ モジュールは、ソフトウェアのさまざまなステータス、トランザクション レコード、エラー レコード、ログイン レコードを記録するために使用されます...

1. 機能的にシンプルな設定:

import logging
logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')
ログイン後にコピー

デフォルトでは、Python のログ モジュールはログを標準出力に出力し、WARNING レベル以上のログのみを表示します。デフォルトのレベルは WARNING

ログ レベル: CRITICAL > ERROR > WARNING > INFO > DEBUG

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート