python日誌模組---logging
阿新 • • 發佈:2018-12-06
通過ini檔案配置logging
logger.ini
[loggers]
keys=root,cLogger,fLogger,cfLogger
[logger_root]
level=DEBUG
handlers=fh
[logger_cLogger]
handlers=ch
qualname=cLogger
propagate=0
[logger_fLogger]
handlers=fh
qualname=fLogger
propagate=0
[logger_cfLogger]
level=DEBUG
handlers=fh,ch
qualname=cfLogger
propagate=0
[handlers]
keys=ch,fh
[handler_ch]
class=StreamHandler
level=DEBUG
formatter=form02
args=(sys.stdout,)
[handler_fh]
class=FileHandler
level=DEBUG
formatter=form01
args=('my.log', 'a')
[formatters]
keys=form01,form02
[formatter_form01]
format=%(asctime)s|%(name)s|%(levelname)s|[%(process)d,%(thread)d]|%(message)s|[%(filename)s,%(lineno)d]
datefmt=%Y-%m-%d %H:%M:%S
[formatter_form02]
format=%(asctime)s|%(name)s|%(levelname)s|[%(process)d,%(thread)d]|%(message)s|[%(filename)s,%(lineno)d]
datefmt=%Y-%m-%d %H:%M:%S
format: 指定輸出的格式和內容,如上例所示:
%(levelno)s: 列印日誌級別的數值
%(levelname)s: 列印日誌級別名稱
%(pathname)s: 列印當前執行程式的路徑,其實就是sys.argv[0]
%(filename)s: 列印當前執行程式名
%(funcName)s: 列印日誌的當前函式
%(lineno)d: 列印日誌的當前行號
%(asctime)s: 列印日誌的時間
%(thread)d: 列印執行緒ID
%(threadName)s: 列印執行緒名稱
%(process)d: 列印程序ID
%(message)s: 列印日誌資訊
loggerdemo.py
# !/usr/bin/env python
# coding:utf-8
from logging.config import fileConfig
import logging
logging.config.fileConfig('logger.ini')
logger=logging.getLogger('cfLogger')
logger.info('hello python.')
螢幕上列印
D:\python\logger-demo> python .\loggerdemo.py
2018-03-12 22:18:42|cfLogger|INFO|[9464,5532]|hello python.|[loggerdemo.py,10]