如何禁用 pyppeteer 中的日志记录

How to disable logging in pyppeteer

我正在使用 pyppeteer 截取图像以制作 pdf,但 pyppeteer 自动记录我截取的所有内容,并且由于服务器限制,日志被写入文件,日志使我的服务器崩溃。

有没有办法完全禁用日志记录?我已经试过了:

        'logLevel': logging.NOTSET,

        'env': {'DEBUG': 'puppeteer:*,-not_this'},

我也试过像这样禁用日志记录:

logging.getLogger('pyppeteer').setLevel(logging.NOTSET)

似乎没有任何效果。

更新

我设法找到了一个变通方法,虽然不是通过禁用应用程序中的所有日志记录的解决方案,如下所示:

logging.disable(logging.CRITICAL)

# pyppeteer code...

logging.disable(logging.NOTSET)

这应该将所有错误记录到一个文件中。

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'simple': {
            'format': '{asctime} {name}] {message}',
            'style': '{',
        }
    },
    'handlers': {
        'file': {
            'level': 'ERROR',
            'class': 'logging.FileHandler',
            'filename': 'error.log',
            'formatter': 'simple',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'ERROR',
            'propagate': True,
        },
        '': {
            'handlers': ['file'],
            'level': 'ERROR',
            'propagate': False,
        },
    },
}

试试这个:

logging.getLogger("<logger name>").disabled = True

如果您想禁用所有记录器,您可以使用:

for name in logging.root.manager.loggerDict:
    # print("logger", name)
    logging.getLogger(name).disabled = True

或者如果您想禁用除您创建的某些记录器之外的所有记录器:

allowed_loggers = ['some_logger']
for name in logging.root.manager.loggerDict:
    # print("logger", name)
    if name in allowed_loggers:
        continue
    logging.getLogger(name).disabled = True