簡體   English   中英

修改Python記錄器的輸出格式

[英]Modify output format of Python logger

我正在嘗試修改Python記錄器的輸出以顯示進程ID。

我嘗試過兩種方法:

import logging
FORMAT = "%(asctime)s %(process)s %(thread)s: %(message)s"
logging.basicConfig(format=FORMAT)
logger = logging.getLogger('my_logger')

import logging
FORMAT = "%(asctime)s %(process)s %(thread)s: %(message)s"
logger = logging.getLogger('my_logger')
handler = logger.handlers[0]
handler.setFormatter(logging.Formatter(FORMAT))

娜達 第一個不會更改格式。 當我嘗試訪問logger.handlers[0]時,第二個拋出索引錯誤。

我不想編寫自己的處理程序,只需修改默認處理程序的格式即可。 有沒有簡單的方法?

第一個更改格式

logging.<severity>("message")

換句話說,當您在第一個示例中設置格式時,無需獲取單獨的記錄器實例,只需使用logging本身即可。 話雖如此,如果您正在使用的任何其他模塊也使用logging則可能會產生不良影響。

如果要更改單獨的記錄器的格式,可以使用以下示例:

from logging import StreamHandler, Formatter

FORMAT = '%(asctime)-15s %(levelname)-6s %(message)s'
DATE_FORMAT = '%b %d %H:%M:%S'
formatter = Formatter(fmt=FORMAT, datefmt=DATE_FORMAT)
handler = StreamHandler()
handler.setFormatter(formatter)
logger = logging.getLogger(__name__)
logger.addHandler(handler)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM