在python中实现多用途记录器的最佳实践是什么?
在我正在构建的应用程序(在一个包中)中,我有两个要从中登录的模块,每个模块都指向一个不同的文件和一个通用流处理程序 我想知道最佳实践是什么:在python中实现多用途记录器的最佳实践是什么?,python,logging,Python,Logging,在我正在构建的应用程序(在一个包中)中,我有两个要从中登录的模块,每个模块都指向一个不同的文件和一个通用流处理程序 我想知道最佳实践是什么: 为每个模块分配不同的记录器,并为每个记录器分配每个模块的FileHandler 或: 只有根记录器和应用程序中的所有处理程序,并在每个处理程序中使用记录器的名称(这将是模块的名称)进行筛选 以下是我的代码,其中我有多个记录器: 日志记录\u配置={ “版本”:1, “禁用现有日志记录器”:False, “伐木工人”:{ '':{#根记录器 'handler
日志记录\u配置={
“版本”:1,
“禁用现有日志记录器”:False,
“伐木工人”:{
'':{#根记录器
'handlers':['stream_handler'],
“级别”:“信息”
},
“应用程序”:{
“处理程序”:[“应用程序文件处理程序”],
“级别”:“信息”
},
“路线”:{
“处理程序”:[“路由文件处理程序”],
“级别”:“信息”
}
},
“处理程序”:{
“流处理程序”:{
“级别”:“警告”,
“格式化程序”:“标准”,
“类”:“logging.StreamHandler”
},
“应用程序文件处理程序”:{
“级别”:“调试”,
“格式化程序”:“标准”,
'class':'logging.FileHandler',
“文件名”:日志\u文件夹/“app.log”
},
“路由文件处理程序”:{
“级别”:“调试”,
“格式化程序”:“标准”,
'class':'logging.FileHandler',
“文件名”:日志\u文件夹/“routes.log”
}
},
“格式化程序”:{
“标准”:{
“格式”:“%(asctime)s-%(名称)s-%(levelname)s:%(消息)s”,
“datefmt”:“%Y-%m-%d%H:%m:%S”
}
}
}
下面是我仅使用根记录器并为每个处理程序分配过滤器的代码:
日志记录\u配置={
“版本”:1,
“禁用现有日志记录器”:False,
“伐木工人”:{
'':{#根记录器
'handlers':['stream_handler',
“应用程序文件处理程序”,
“路由文件处理程序”,
“路由\u流\u处理程序”],
“级别”:“信息”
}
},
“处理程序”:{
“流处理程序”:{
“级别”:“警告”,
“格式化程序”:“标准”,
“类”:“logging.StreamHandler”
},
“应用程序文件处理程序”:{
“级别”:“调试”,
“格式化程序”:“标准”,
'class':'logging.FileHandler',
“文件名”:日志\u文件夹/“app.log”,
“过滤器”:[“应用程序过滤器”]
},
“路由文件处理程序”:{
“级别”:“调试”,
“格式化程序”:“标准”,
'class':'logging.FileHandler',
“文件名”:日志\u文件夹/“routes.log”,
'过滤器':['routes_filter']
},
“路由\u流\u处理程序”:{
“级别”:“调试”,
“格式化程序”:“标准”,
'class':'logging.StreamHandler',
'过滤器':['routes_filter']
}
},
“过滤器”:{
“应用程序过滤器”:{
'class':'logging.Filter',
“名称”:“应用程序”
},
“路由过滤器”:{
'class':'logging.Filter',
“名称”:“路由”
}
},
“格式化程序”:{
“标准”:{
“格式”:“%(asctime)s-%(名称)s-%(levelname)s:%(消息)s”,
“datefmt”:“%Y-%m-%d%H:%m:%S”
}
}
}