簡體   English   中英

使用日志記錄在 python 中創建不同的日志文件

[英]Create different log files in python using logging

我正在嘗試為錯誤創建日志。 這是我正在使用的記錄器。

import logging
import os

def create_log(source):
    logging.basicConfig(filename="logs/"+source+".log",
                        format='%(asctime)s::%(levelname)s::%(message)s',
                        filemode='a')
logger = logging.getLogger()
logger.setLevel(logging.INFO)

def info_logger(message):
    logger.info(message)

def error_logger(message):
    print(message)
    logger.error(message)

我在 for 循環中調用此記錄器,我正在執行一些操作並嘗試為每次迭代創建日志

for i in data["source_id"]:
   
   --Some task here--

   log_file_name = str(source_dict["source_id"]) + "_" + source_dict["source_name"] + "_"+str(datetime.today().strftime("%Y-%m-%d_%H_%M_%S"))
   
   create_log(log_file_name)

對於第一次迭代,正在創建日志文件。 但對於其他迭代,將附加相同的日志文件。 我想為每次迭代制作單獨的日志文件。 知道我該怎么做嗎?

你可以試試這個

import logging

debug = logging.FileHandler("debug.log")
debug.setLevel(logging.DEBUG)

error = logging.FileHandler("error.log")
error.setLevel(logging.ERROR)

warning = logging.FileHandler("warning.log")
warning.setLevel(logging.WARNING)

console = logging.StreamHandler()

logging.basicConfig(  # noqa
    level=logging.INFO,
    format="[%(asctime)s]:%(levelname)s %(name)s :%(module)s/%(funcName)s,%(lineno)d: %(message)s",
    handlers=[debug, error, warning, console]
)

logger = logging.getLogger()
logger.debug("This is debug  [error+warning]")
logger.error("This is error  [error only]")
logger.warning("This is warn [error+warning]")

暫無
暫無

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

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