静默 WeasyPrint 脚本 运行

Silent WeasyPrint script run

WeasyPrint 不支持某些 CSS3 功能(我希望如此),并且 运行 宁一个 Python 脚本会抛出一长串被忽略的条目(例如。框阴影、渐变),然后是工作总结。是否可以 运行 WeasyPrint 在静默模式下不显示任何信息?

根据documentation, 您可以创建一个新的记录器对象来覆盖 WeasyPrint 默认行为。以下代码片段取自文档页面本身。

import logging
logger = logging.getLogger('weasyprint')
logger.handlers = []  # Remove the default stderr handler
logger.addHandler(logging.FileHandler('/path/to/weasyprint.log'))

如果您根本不需要任何日志记录,可以删除最后一行。

使用 Wea​​syPrint,我注意到我的 webserver.error.log 文件中的大部分日志消息实际上来自 'fontTools',它被 'weasyprint' 导入和使用,例如:

head pruned
OS/2 Unicode ranges pruned: [0]
glyf pruned
GDEF pruned
GPOS pruned
GSUB pruned

在我 'import weasyprint' 导入 'fontTools' 之后,'fontTools' 记录器级别设置为 INFO:

print(logging.getLogger('fontTools'))

<Logger fontTools (INFO)>

所以如果我使用:

import weasyprint, logging
logging.getLogger('fontTools').setLevel(logging.WARNING)
logging.getLogger('weasyprint').setLevel(logging.WARNING)

这会阻止 INFO 消息出现在我的 webserver.error.log 文件中。

可以选择使用:“.....setLevel(logging.ERROR)”来删除警告消息。