簡體   English   中英

創建多個日志文件python

[英]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的第一個值。 您可以根據需要將其保留為{} -沒什么實質性的區別。

  1. 關於文件名:

     filename = str.format('mylog%d.txt' % i) 

    等於:

     filename = 'mylog%d.txt' % i 
  2. 要輸出到多個文件,可以使用多個處理程序。

    處理日志的日志記錄類。

     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.

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