你可以使用Python的logging模塊來(lái)輸出日志并寫(xiě)入到txt文本中。
首先,你需要導(dǎo)入logging模塊:
import logging
然后,你可以配置logging的設(shè)置,如設(shè)置日志級(jí)別、日志輸出格式等:
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s', filename='output.log', filemode='w')
在上述代碼中,`level`參數(shù)表示設(shè)置日志級(jí)別,可以使用`DEBUG`、`INFO`、`WARNING`、`ERROR`、`CRITICAL`等級(jí)別,這里設(shè)置為`DEBUG`表示輸出所有級(jí)別的日志。`format`參數(shù)表示日志輸出的格式,`%(asctime)s`表示輸出時(shí)間,`%(levelname)s`表示日志級(jí)別,`%(message)s`表示日志內(nèi)容。`filename`參數(shù)表示日志文件的名稱,這里設(shè)置為`output.log`。`filemode`參數(shù)表示打開(kāi)文件的模式,這里設(shè)置為`w`表示寫(xiě)入模式。
接下來(lái),你就可以使用logging來(lái)輸出日志并寫(xiě)入到txt文本中了。例如:
logging.debug('這是一條調(diào)試信息') logging.info('這是一條普通信息') logging.warning('這是一條警告信息') logging.error('這是一條錯(cuò)誤信息') logging.critical('這是一條嚴(yán)重錯(cuò)誤信息')
以上代碼將會(huì)把日志信息寫(xiě)入到`output.log`文件中。每條日志信息占據(jù)一行,并根據(jù)設(shè)置的格式進(jìn)行輸出。
如何限制日志數(shù)量
在 Python 中,使用標(biāo)準(zhǔn)庫(kù)中的 logging 模塊進(jìn)行日志記錄。要限制日志數(shù)量,可以結(jié)合使用 RotatingFileHandler 和設(shè)置最大日志文件數(shù)來(lái)實(shí)現(xiàn)。
下面是一個(gè)示例代碼,展示了如何使用 logging 模塊限制日志文件的數(shù)量:
import logging import logging.handlers # 創(chuàng)建日志記錄器 logger = logging.getLogger('my_logger') logger.setLevel(logging.DEBUG) # 創(chuàng)建 RotatingFileHandler,并設(shè)置最大日志文件數(shù)量為3 handler = logging.handlers.RotatingFileHandler('my_logs.log', maxBytes=1024, backupCount=3) logger.addHandler(handler) # 設(shè)置日志記錄格式 formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) # 添加日志記錄 logger.debug('Debug message') logger.info('Info message') logger.warning('Warning message') logger.error('Error message')
在上述代碼中,RotatingFileHandler 用于將日志寫(xiě)入到文件中,并提供了控制日志文件數(shù)量的功能。通過(guò) maxBytes 參數(shù),可以設(shè)置單個(gè)日志文件的最大尺寸(單位為字節(jié)),當(dāng)達(dá)到這個(gè)大小時(shí),會(huì)自動(dòng)觸發(fā)日志滾動(dòng),將舊的日志文件備份并創(chuàng)建新的日志文件。通過(guò) backupCount 參數(shù),可以設(shè)置保留的日志文件數(shù)量。當(dāng)超過(guò)這個(gè)數(shù)量時(shí),最早的日志文件將被刪除。
在上述示例中,創(chuàng)建了一個(gè)最大尺寸為 1024 字節(jié)(1KB),最多保留 3 個(gè)日志文件的 RotatingFileHandler。你可以根據(jù)實(shí)際需求來(lái)調(diào)整這些設(shè)置。
使用上述代碼,每次運(yùn)行都會(huì)將日志信息記錄到 my_logs.log 文件中,并限制日志文件數(shù)量不超過(guò) 3 個(gè)。當(dāng)達(dá)到數(shù)量限制時(shí),最早的日志文件將被刪除。
評(píng)論