将关键字arg传递给python日志记录配置文件中的日志处理程序
根据,我可以使用将关键字arg传递给python日志记录配置文件中的日志处理程序,python,logging,configuration,Python,Logging,Configuration,根据,我可以使用args键为记录器的构造函数指定参数。但这似乎只适用于位置参数。我有一个需要一些关键字参数的处理程序。有没有办法在配置文件中指定这些内容?我很抱歉地告诉您,答案是否 请查看以了解更多详细信息 当有疑问时,源代码永远是你的朋友 我不同意答案是否定的 您可以将关键字参数放在一行中,就像在SysLogHandler的示例中一样,没有位置参数,只有关键字参数: 类logging.handlers.SysLogHandler(地址=('localhost', SYSLOG_UDP_端口),
args
键为记录器的构造函数指定参数。但这似乎只适用于位置参数。我有一个需要一些关键字参数的处理程序。有没有办法在配置文件中指定这些内容?我很抱歉地告诉您,答案是否
请查看以了解更多详细信息
当有疑问时,源代码永远是你的朋友 我不同意答案是否定的 您可以将关键字参数放在一行中,就像在SysLogHandler的示例中一样,没有位置参数,只有关键字参数: 类logging.handlers.SysLogHandler(地址=('localhost', SYSLOG_UDP_端口),facility=LOG_USER,socktype=socket.SOCK_DGRAM) Python将“/dev/log”作为address关键字参数,“myapp”作为facility参数。他们是按他们出现的顺序来处理的 此类示例见和的文档: 但也有一些缺点:
- 它不太可读
- 它是有限的:如果您需要访问外部库,则使用
不起作用。在这种情况下,我建议将旧式配置文件转换为yaml文件,如我在这里的问答中所述:ext://
formatters:
class:
class: colorlog.ColoredFormatter
log_colors: { DEBUG: 'cyan', INFO: 'green', WARNING: 'yellow', ERROR: 'red', CRITICAL: 'red,bg_white' }
format: '%(log_color)s[%(asctime)s-%(shorter_levelname)s-%(compact_name)s]%(message)s'
datefmt: '%H:%M:%S'
相反,这将起作用:
formatters:
color:
(): colorlog.ColoredFormatter
log_colors: { DEBUG: 'cyan', INFO: 'green', WARNING: 'yellow', ERROR: 'red', CRITICAL: 'red,bg_white' }
format: '%(log_color)s[%(asctime)s-%(shorter_levelname)s-%(compact_name)s]%(message)s'
datefmt: '%H:%M:%S'
formatters:
class:
class: colorlog.ColoredFormatter
log_colors: { DEBUG: 'cyan', INFO: 'green', WARNING: 'yellow', ERROR: 'red', CRITICAL: 'red,bg_white' }
format: '%(log_color)s[%(asctime)s-%(shorter_levelname)s-%(compact_name)s]%(message)s'
datefmt: '%H:%M:%S'
formatters:
color:
(): colorlog.ColoredFormatter
log_colors: { DEBUG: 'cyan', INFO: 'green', WARNING: 'yellow', ERROR: 'red', CRITICAL: 'red,bg_white' }
format: '%(log_color)s[%(asctime)s-%(shorter_levelname)s-%(compact_name)s]%(message)s'
datefmt: '%H:%M:%S'