python中的logging模块

python中输出的文件主要用到logging模块:

import logging

logging.basicConfig={

#日志存放的文件,默认打印到终端
filename="文件名字"  

#日志输出的格式
formate = "%(asctime)s %(levelname)s %(message)s "

#日志的时间格式
datefmt = '%Y-%m-%d %H:%M:%S'

#日志级别
#critical=>50
#error=>40
#warning=>30
#info=>20
#debug=>10

leve= 'info'
}

配置文件的填写:

LOG_CONF = {
    'version': 1, 这个是自己定义的
    'formatters': {
        'formatter_1': {
            'format': '%(levelname)s:%(name)s %(asctime)s: %(message)s',
            'datefmt': None
        },
        'formatter_2': {
            'format': '%(levelname)s - %(name)s - %(message)s',
            'datefmt': None
        }
    },
    'filters': {
        'filter_1': {
            '()': myFilter1,      # 使用 `()` 指定用哪个类来实现过滤功能
            'name': 'name1'       # name 的值会在 Filter 实例化时传入
        }
    },
    'handlers': {
        'handler_1': {    # 指定一个文件 handler, 仅保存 ERROR 及其以上级别的日志
            'class': 'logging.FileHandler',
            'level': logging.ERROR,
            'formatter': 'formatter_1',
            'filters': ['filter_1'],
            'filename': LOG_DIR / 'test_dict_config_err.log',  # 需要先创建目录
        },
        'handler_2': {    # 指定一个 stream handler, 打印 DEBUG 及其以上级别的日志
            'class': 'logging.StreamHandler',
            'level': logging.DEBUG,
            'formatter': 'formatter_2',
            # 'filters': ['filter_1']
        }
    },
    'loggers': {
        'my_logger1': {
            'level': logging.WARNING,  # 在这里指定的 level, 优先级比 handler 中的 level 更高
            # Logger 对象被设计为一个树形结构.  print(logger.parent)
            # 子logger 在完成对日志消息的处理后,默认会将日志消息传递给它的 parent logger
            'propagate': False,  # 1/0/True/False, 是否传递给父节点的 logger 来处理
            'filters': ['filter_1'],  # 在这里指定的 filter, 优先级比 handler 中的 filter 更高
            'handlers': ['handler_1', 'handler_2']
        }
    },
    'root': {  # 专门配置 root logger
        'level': logging.DEBUG,
        # 'propagate': 1,  # 对于 root logger 来说, propagate 零作用
        'filters': [],
        'handlers': ['handler_2']  # 为了测试 propagate, 需要指定一个 handler
    },
    'incremental': False,
    'disable_existing_loggers': True
}

导入日志的配置文件:

import logging.config

#这边一般都是用的默认的配置
logging.config.dictConfig(自己写的配文件)

产生日志:

import logging

logger=logging.getLogger(日志产生者)

logger.info/debug/error.(message)

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值