Python 日誌模組 logging通過設定檔方式使用,

來源:互聯網
上載者:User

Python 日誌模組 logging通過設定檔方式使用,

vim logger_config.ini
[loggers]
keys=root,infoLogger,errorlogger

[logger_root]
level=DEBUG
handlers=infohandler,errorhandler

[logger_infoLogger]
handlers=infohandler
qualname=infoLogger
propagate=0

[logger_errorlogger]
handlers=errorhandler
qualname=errorlogger
propagate=0

###############################################

[handlers]
keys=infohandler,errorhandler

[handler_infohandler]
class=StreamHandler
level=INFO
formatter=form02
args=(sys.stdout,)

[handler_errorhandler]
class=FileHandler
level=ERROR
formatter=form01
args=('logs/mylog.log', 'a')

###############################################

[formatters]
keys=form01,form02

[formatter_form01]
format=%(asctime)s %(filename)s %(levelname)s %(message)s
datefmt=%Y-%m-%d %H:%M:%S

[formatter_form02]
format=%(asctime)s %(filename)s %(levelname)s %(message)s
datefmt=%Y-%m-%d %H:%M:%S


欄位說明:


[loggers]
# 定義logger模組,root是父類,必需存在的,其它的是自訂。
# logging.getLogger(NAME)便相當於向logging模組註冊了一種日誌列印
# name 中用 . 表示 log 的繼承關係

[handlers]
# 定義handler
[formatters]
# 定義格式化輸出 [logger_root]

# 實現上面定義的logger模組,必需是[logger_xxxx]這樣的形式

# [logger_xxxx] logger_模組名稱
# level 層級,層級有DEBUG、INFO、WARNING、ERROR、CRITICAL
# handlers 處理類,可以有多個,用逗號分開
# qualname logger名稱,應用程式通過 logging.getLogger擷取。對於不能擷取的名稱,則記錄到root模組。
# propagate 是否繼承父類的log資訊,0:否 1:是

[handler_infohandler]
# [handler_xxxx]
# class handler類名
# level 記錄層級
# formatter,上面定義的formatter
# args handler初始化函數參數
[formatter_form01]
# 日誌格式
#--------------------------------------------------
# %(asctime)s 年-月-日 時-分-秒,毫秒 2013-04-26 20:10:43,745
# %(filename)s 檔案名稱,不含目錄
# %(pathname)s 目錄名,完整路徑
# %(funcName)s 函數名
# %(levelname)s 層級名
# %(lineno)d 行號
# %(module)s 模組名
# %(message)s 訊息體
# %(name)s 日誌模組名
# %(process)d 進程id
# %(processName)s 進程名
# %(thread)d 線程id
# %(threadName)s 線程名


使用方式:

from logging.config import fileConfig

fileConfig('loggin_config.ini')
logger=logging.getLogger('infoLogger')
logger.info('test1')
logger_error=logging.getLogger('errorhandler')
logger_error.error('test5')
 
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.