常用模块——日志模块

Posted linagcheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用模块——日志模块相关的知识,希望对你有一定的参考价值。

logging模块

一、logging作用

   1. 控制日志级别
   2. 控制日志格式
   3. 控制输出的目标为文件

二、日志级别

1 logging.debug(debug日志) # 10
2 logging.info(info日志) # 20
3 logging.warning(warning日志) #30
4 logging.error(error日志)#40
5 logging.critical(critical日志) #50

三、示例

import logging

# 1. logger对象: 负责生产各种级别的日志
logger1 = logging.getLogger(用户交易)  # 日志名用来标识日志的与什么业务有关

# 2. filter对象: 过滤日志(很少使用)

# 3. handler对象: 控制日志输出目标位置,以及编码标准
fh1 = logging.FileHandler(a1.log,encoding=utf-8)
fh2 = logging.FileHandler(a2.log,encoding=utf-8)
ch = logging.StreamHandler()

# 4. formmater对象:控制日志的格式
formatter1 = logging.Formatter(
    fmt=%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s,
    datefmt=%Y-%m-%d %H:%M:%S %p
)

formatter2 = logging.Formatter(
    fmt=%(asctime)s - %(levelname)s :  %(message)s,
    datefmt=%Y-%m-%d %H:%M:%S %p
)

# 5. 绑定logger对象与handler对象
logger1.addHandler(fh1)
logger1.addHandler(fh2)
logger1.addHandler(ch)

# 6. 绑定handler对象与formatter对象

fh1.setFormatter(formatter1)
fh2.setFormatter(formatter1)
ch.setFormatter(formatter2)

# 7. 设置日志级别,有logger对象与handler对象两层关卡,必须都放行最终日志才会放行,通常二者级别相同
logger1.setLevel(10)
fh1.setLevel(10)
fh2.setLevel(10)
ch.setLevel(10)

# 8. 使用logger对象产生日志
logger1.info(ffffffff)

四、log配置字典

LOGGING_DIC = {
    version: 1,
    disable_existing_loggers: False,
    formatters: {
        standard: {
            format: standard_format
        },
        simple: {
            format: simple_format
        },
    },
    filters: {},
    handlers: {
        #打印到终端的日志
        ch: {
            level: DEBUG,
            class: logging.StreamHandler,  # 打印到终端
            formatter: simple
        },
        #打印到a1.log文件的日志
        fh1: {
            level: DEBUG,
            class: logging.FileHandler,  # 保存到文件
            formatter: standard,
            filename: fh1_path,  # 日志文件的路径
            encoding: utf-8,  # 日志文件的编码,再也不用担心中文log乱码了
        },
        # 打印到a2.log文件的日志
        fh2: {
            level: DEBUG,
            class: logging.FileHandler,  # 保存到文件
            formatter: simple,
            filename: fh2_path,  # 日志文件的路径
            encoding: utf-8,  # 日志文件的编码,再也不用担心中文log乱码了
        },

    },
    loggers: {
        ‘‘: {
            handlers: [fh1, fh2, ch],
            level: DEBUG,
        },
    },
}
技术分享图片
logging.config.dictConfig(settings.LOGGING_DIC)

logger1=logging.getLogger(用户交易)
#logger1-> fh1,fh2,ch
logger1.info(复古风刚刚兴起)

logger2=logging.getLogger(用户权限)
#logger2-> fh1,fh2,ch
logger2.error(TOm没有执行权限)
调用log配置字典

 



以上是关于常用模块——日志模块的主要内容,如果未能解决你的问题,请参考以下文章

Python 常用模块学习

常用模块——日志模块

python - 常用模块 - logging模块

python开发常用模块:日志模块

nodejs常用代码片段

Python学习 :常用模块