ロガーは、辞書Pythonの設定ファイルを記録します

インポートOS
 インポート logging.config    #はログの中に導入されるだけでなく

BASE_DIR = os.path.dirname(os.path.dirname(__FILE__ ))
 #1 DB_PATHのR&LT = '%S \ DB \ db.txt' %BASE_DIR 
DB_PATH R&LT = ' %S \ DB '%のBASE_DIRの

#は、ログファイルのパス定義 
開き、log_pathのR&LT = ' のaccess.log \%Sの\ログ'BASE_DIR 
BOSS_LOG_PATH = R&LT ' \ boss.log%S \ログ'%のBASE_DIRの

#は、ログ出力の開始のための3つの形式定義 
standard_formatを= "[%(いるasctime)S] [%(のthreadName)S:%(スレッド)D] [TASK_ID:%(名)S] [%(ファイル名)S:%(LINENO)D] ' \
                   ' [%(levelname) S] [%(メッセージ)S] '  名前が指定のgetLogger名前である

simple_format = ' %(LINENO)D]%(:[%(levelname)S] [%(いるasctime)S] [%(ファイル名)Sメッセージ)をS ' 

id_simple_format = ' [%(levelname)S] [%(いるasctime)S]%(メッセージ)S ' 
#は、ログ出力端のフォーマット定義

LOGFILE_DIR持つ= os.path.dirname(os.path.abspathを(__FILE__))   ディレクトリのログファイルには、 
= LOGFILE_NAME all2.log   #のログファイル名

#をログディレクトリが定義されて作成するために存在していない場合は
IF  ないos.path.isdir(LOGFILE_DIR):
    os.mkdir(LOGFILE_DIR) 

フルパスログファイルへ 
logfile_path = os.path.join(LOGFILE_DIR、LOGFILE_NAME) 

ログ設定辞書を 
LOGGING_DIC = {
     ' バージョン':1 ' disable_existing_loggers ' :偽、
     ' フォーマッタ' {
         ' 標準' {
             ' 形式' :standard_format 
        }、
        ' シンプル' :{
            ' フォーマット' :simple_format 
        }、
        ' id_simple ' {
             ' 形式' :id_simple_format 
        }、
    }、
    ' フィルタ' :{}、
     ' ハンドラ' :{
         端末のログに印刷
        ' ストリーム' {
             ' レベル'' DEBUG ' ' クラス'' logging.StreamHandler "画面に印刷された
            フォーマッターシンプル
        }、 
        ログファイルに出力、ログ収集と情報上記の
        アクセス:{
             レベルDEBUG クラスlogging.handlers.RotatingFileHandler ファイルに保存
            フォーマッタ標準ファイル名:logfile_pathを、  #のログファイル
            ' MAXBYTES ':* 1024 1024 * 5、  ログサイズ5M 
            ' BACKUPCOUNT ':5 ' エンコーディング'' UTF-8 '#のログファイルのエンコーディング、もはやが文字化けログの中国を心配する必要はありません
        }
         #のファイルへ出力しますログ収集とエラー上記ログ
        BOSS :{
                     レベルエラークラスlogging.handlers.RotatingFileHandler ファイルに保存
                    ' フォーマッタ'' id_simple ' ' ファイル名':BOSS_LOG_PATH、  ログファイル
                    'MAXBYTES':* 1024 1024 * 5、#ログのサイズ5M 
                    ' MAXBYTES ':300、  ログサイズ5M 
                    ' BACKUPCOUNTを':5 エンコーディングUTF-8 #のログファイルのエンコーディング、もはや中国が文字化けログを心配する必要はあり
                }、
    }、
    ロガー:
        {Logging.getLogger(__ name__)ロガーの構成を得る
        「」{
             ハンドラ:[ 流れアクセスBOSS  ]、  ハンドラはプラス2上に定義されている、すなわち、データを記録両方のファイルを作成し、画面に印刷された
            レベルDEBUG 伝播:真、   アップ(より高いレベルロガー)通過
        }、
        我々はその後、別のロガーオブジェクトlogging.getLogger(__ name__)がかかります印刷は異なる識別情報をログインしたときにことを保証異なる__name__、ファイル
        #をしかし、我々がそこに着いたときに見つけることができないキーの名前を見つけるためロガーに名前を取ったので、デフォルトのキー=「」の構成
    }、
} 


DEFのload_my_logging_cfg():
    logging.config.dictConfig(LOGGING_DIC)  ロギング設定上記のインポート定義 
    = logging.getLoggerロガー(__name__#は、ログの例を生成 
    logger.info(' それは作品を!'#のファイルのレコード操作状態

IF  __name__ == ' __main__ ' 
    load_my_logging_cfg()
コードの表示

 

おすすめ

転載: www.cnblogs.com/mylu/p/11116437.html