簡體   English   中英

如何使用日志記錄同時記錄到文件和控制台?

[英]How to log to file and console at the same time with logging?

我需要將數據記錄到文件以及控制台。 我這樣設置:

# set up logging
logging.basicConfig(level    = logging.INFO,
                    format   ='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
                    datefmt  ='%Y-%m-%d %H:%M:%S',
                    handlers=[logging.FileHandler(dir + '/log.log'), logging.StreamHandler()]
                    )

然后我添加這樣的數據: logging.info('Server started') 在控制台中,我看到了文本,但文件為空。 如果我刪除tgis文件,python將創建一個新文件,但它仍然是空的。

這只是為同一錯誤級別設置多個處理程序的情況。

刪除basicConfig行並執行以下類似操作

請參閱此示例以了解如何執行此操作:

import logging

log_formatter = logging.Formatter('%(asctime)s %(levelname)s %(funcName)s(%(lineno)d) %(message)s', 
                                  datefmt='%d/%m/%Y %H:%M:%S')

#File to log to
logFile = 'C:\\Temp\\log'

#Setup File handler
file_handler = logging.FileHandler(logFile)
file_handler.setFormatter(log_formatter)
file_handler.setLevel(logging.INFO)

#Setup Stream Handler (i.e. console)
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(log_formatter)
stream_handler.setLevel(logging.INFO)

#Get our logger
app_log = logging.getLogger('root')
app_log.setLevel(logging.INFO)

#Add both Handlers
app_log.addHandler(file_handler)
app_log.addHandler(stream_handler)

#Write some Data
while True:
    app_log.info("data")

暫無
暫無

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

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