[英]create multiple log files python
我想將結果保存為日志文件,因此我正在考慮導入日志記錄模塊。 我知道要輸出文件,代碼非常簡單。
logging.basicConfig(filename='logger.log', level=logging.INFO)
logging.debug('debug message')
logging.info('info message')
logging.warn('warn message')
logging.error('error message')
logging.critical('critical message')
但是,如果我要輸出多個日志文件怎么辦? 例如,在下面的for循環中,每次迭代都會輸出一個日志文件,我該怎么做?
for i in range(1,10):
print (i)
#output a log file to save I value
我嘗試使用這些代碼,但無法正常工作。
for i in range(1,10):
filename = str.format('mylog%d.txt' % i)
logging.basicConfig(format=log_fmt, level=logging.DEBUG, filename=filename)
logging.debug('This is debug message')
logging.info('This is info message')
logging.warning('This is warning message')
您使用的字符串format
功能不正確。 您正在嘗試使用字符串插值,這是一種完全不同的格式化字符串的方法。 您應該嘗試這樣的事情:
filename = 'mylog{0}.txt'.format(i)
{0}
明確指出您應該采用傳遞給format
的第一個值。 您可以根據需要將其保留為{}
-沒什么實質性的區別。
關於文件名:
filename = str.format('mylog%d.txt' % i)
等於:
filename = 'mylog%d.txt' % i
要輸出到多個文件,可以使用多個處理程序。
處理日志的日志記錄類。
root_logger = logging.getLogger()
返回您的根處理程序。 您可以向記錄器添加或刪除處理程序。
root_logger.handlers
包含根記錄器的處理程序列表。
first = root_logger.handlers[0] first.close() root_logger.removeHandler(first)
刪除第一個處理程序。
new_handler = logging.FileHandler(file_name) formatter = logging.Formatter('%(asctime)s ' + ' %(message)s', '%H:%M:%S') new_handler.setFormatter(formatter) root_logger.addHandler(new_handler)
將新的格式化程序添加到root_handler。 您可以同時將日志輸出到任何文件。
有關更多信息,請閱讀:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.