Python Logging Configuration for Multiple Log Files

要在Python的logging模块中配置两个日志文件,一个用于记录所有级别的日志,另一个专门用于记录ERROR级别的日志,你可以在handlers部分添加一个新的handler配置。以下是修改后的配置代码:
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '{levelname} {asctime} {module} {message}',
            'style': '{',
        },
        'simple': {
            'format': '{levelname} {message}',
            'style': '{',
        },
        'error': {  # 新增一个formatter专门用于ERROR日志
            'format': '{levelname} {asctime} {module} {message}',
            'style': '{',
        },
    },
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',
            'maxBytes': 1024*1024*5,  # 5 MB
            'filename': 'debug.log',  # 假设日志文件名为debug.log
            'backupCount': 5,
            'formatter': 'verbose',
        },
        'error_file': {  # 新增一个handler专门用于ERROR日志
            'level': 'ERROR',
            'class': 'logging.handlers.RotatingFileHandler',
            'maxBytes': 1024*1024*5,  # 5 MB
            'filename': 'error.log',  # 假设日志文件名为error.log
            'backupCount': 5,
            'formatter': 'error',  # 使用上面定义的error formatter
        },
        'console': {
            'level': 'INFO',
            'class': 'logging.StreamHandler',
            'formatter': 'simple',
        },
    },
    'loggers': {
        'clamav': {
            'handlers': ['file', 'error_file', 'console'],  # 将两个文件handler和console handler都添加到logger中
            'level': 'INFO',
            'propagate': False,  # 避免日志信息向上传递到root logger
        }
    },
}
这段代码中,我添加了一个新的handler `error_file`,它专门用于记录ERROR级别的日志到`error.log`文件中。同时,我也为这个handler定义了一个新的formatter `error`,这样ERROR日志的格式可以与DEBUG日志的格式不同。最后,我将这个新的handler添加到了`clamav` logger的handlers列表中,并设置了`propagate`为`False`,以防止日志信息向上传递到root logger。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值