我有两个日志记录类,它们应该在两个不同的文件上打印日志。
一流
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()
意味着在应用程序启动时运行一次,并将配置根记录器。
如果您需要其他两个记录器的输出,则需要手动配置它们(或者可能在根记录器上配置"路由"处理程序(。