Python日志记录模块总是使用相同的文件



我有两个日志记录类,它们应该在两个不同的文件上打印日志。

一流

import logging
class firstLog:

def __init__(self):
self.logger = logging.getLogger("my_logger1")
logging.basicConfig(format="%(asctime)s.%(msecs)06d:n%(message)sn", level=logging.DEBUG,
datefmt="%d/%m/%Y %H:%M:%S",
filename="filename1.log")
def printlog(self, msg, *args, **kwargs):
self.logger.debug(msg, *args, **kwargs)

二等

import logging
class secondLog:

def __init__(self):
self.logger = logging.getLogger("my_logger2")
logging.basicConfig(format="%(asctime)s.%(msecs)06d:n%(message)sn", level=logging.DEBUG,
datefmt="%d/%m/%Y %H:%M:%S",
filename="filename2.log")
def printlog(self, msg, *args, **kwargs):
self.logger.debug(msg, *args, **kwargs)

我实例化了这两个类,但只有filename1.log

log1 = firstLog()
log2 = secondLog()
log1.printlog("text1")
log2.printlog("text2")

我得到的是创建了一个名为filename1.log的新文件,其中包含

04/06/2021 08:57:04.000988:
text1
04/06/2021 08:57:04.000990:
text2

但是我需要两个单独的文件

logging.basicConfig()仅应用一次。

如果已经配置了logging,则除非设置了force,否则basicConfig()将不执行任何操作。(来源(

在您的情况下,应该使用logging.getLogger(name)和不同名称的单独记录器。然后手动配置记录器。

logging.basicConfig()意味着在应用程序启动时运行一次,并将配置根记录器。

如果您需要其他两个记录器的输出,则需要手动配置它们(或者可能在根记录器上配置"路由"处理程序(。

最新更新