如下所示:
import logging # 創建一個logger logger = logging.getLogger('mylogger') logger.setLevel(logging.DEBUG) # 創建一個handler,用于寫入日志文件 fh = logging.FileHandler('test.log') fh.setLevel(logging.DEBUG) # 再創建一個handler,用于輸出到控制臺 ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) # 定義handler的輸出格式 formatter = logging.Formatter('[%(asctime)s][%(thread)d][%(filename)s][line: %(lineno)d][%(levelname)s] ## %(message)s')fh.setFormatter(formatter) ch.setFormatter(formatter) # 給logger添加handler logger.addHandler(fh) logger.addHandler(ch) # 記錄一條日志 logger.info('foorbar') 關于formatter的配置,采用的是%(<dict key>)s的形式,就是字典的關鍵字替換。提供的關鍵字包括:
| Format | Description |
|---|---|
| %(name)s | Name of the logger (logging channel). |
| %(levelno)s | Numeric logging level for the message (DEBUG, INFO, WARNING, ERROR, CRITICAL). |
| %(levelname)s | Text logging level for the message ('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'). |
| %(pathname)s | Full pathname of the source file where the logging call was issued (if available). |
| %(filename)s | Filename portion of pathname. |
| %(module)s | Module (name portion of filename). |
| %(funcName)s | Name of function containing the logging call. |
| %(lineno)d | Source line number where the logging call was issued (if available). |
| %(created)f | Time when the LogRecord was created (as returned by time.time()). |
| %(relativeCreated)d | Time in milliseconds when the LogRecord was created, relative to the time the logging module was loaded. |
|
學習交流
熱門圖片
猜你喜歡的新聞
新聞熱點 2020-02-23 14:27:16
2020-02-22 09:45:28
2020-02-22 09:42:20
2020-02-22 09:39:07
2020-02-21 16:46:56
2020-02-20 10:01:00
疑難解答 |