[英]Logging to two different .log files
我想将请求日志放在不同的文件中。 不幸的是,下面的代码实际上创建了 2 个不同的 .log 文件,但所有日志都在第一个文件中,而第二个文件完全是空的。 是否可以设置 basicConfig 以便日志落在不同的文件中?
import logging
import time
def example_request_handler(name):
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [%(levelname)s] %(message)s",
handlers=[
logging.FileHandler(f"{name}.log"),
logging.StreamHandler()])
logging.info(name)
example_request_handler("first_request1")
example_request_handler("secound_request2")
一旦将日志记录处理程序添加到logging.basicConfig
中,即使在您重新配置它们之后,它们仍将保持原样。
在Python3.8中,在logging.basicConfig
中引入了一个新的force
参数。 如果此关键字参数指定为 true,则在执行其他 arguments 指定的配置之前,将删除并关闭附加到根记录器的任何现有处理程序。
那将使您的 function 成为 -
import logging
import time
def example_request_handler(name):
logging.basicConfig(
level=logging.INFO,
force = True,
format="%(asctime)s [%(levelname)s] %(message)s",
handlers=[
logging.FileHandler(f"{name}.log"),
logging.StreamHandler()])
logging.info(name)
example_request_handler("first_request1")
example_request_handler("second_request2")
上面应该只在第二个文件中记录second_request2
。
请注意,为每个新日志删除/添加新的日志处理程序通常不是一个好主意。 如果您想登录到n
不同的文件,请考虑为它们初始化不同的记录器,并在您的个人记录功能可以使用的管理器 function 中保留记录器的映射。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.