likes
comments
collection
share

python 日志模块:logging

作者站长头像
站长
· 阅读数 25

很好的博客:python 日志 logging模块(详细解析)

1、仅在控制台打印日志信息

import logging

def add(x, y):
    return x + y

if __name__ == "__main__":
    logging.basicConfig(
        level=logging.INFO,    # 过滤器
        format='[%(levelname)s]   %(message)s')    # 格式化日志信息
    logger = logging.getLogger(__name__)     # 创建一个logger对象

    logger.info("Start print log")
    sum = add(2, 3)
    logger.info(f"sum is {sum}")
    logger.info("End print log")


# 控制台输出:
[INFO]   Start print log
[INFO]   sum is 5
[INFO]   End print log

2、仅在日志文件中打印日志信息

import logging

def add(x, y):
    return x + y

if __name__ == "__main__":
    logging.basicConfig(
        filename="log.txt",    # 日志文件
        level=logging.INFO,    # 过滤器
        format='[%(levelname)s]   %(message)s')    # 格式化日志信息
    logger = logging.getLogger(__name__)     # 创建一个logger对象

    logger.info("Start print log")
    sum = add(2, 3)
    logger.info(f"sum is {sum}")
    logger.info("End print log")


# 日志文件 log.txt 内容:
[INFO]   Start print log
[INFO]   sum is 5
[INFO]   End print log

3、同时在控制台和日志文件中打印日志信息

在 logger 中添加 StreamHandler,可以将日志信息输出到控制台上。

import logging

def add(x, y):
    return x + y

if __name__ == "__main__":
    logging.basicConfig(
        filename="log.txt",
        level=logging.INFO,
        format='[%(levelname)s]   %(message)s')
    logger = logging.getLogger(__name__)
    console = logging.StreamHandler()     # 添加控制台日志输出
    logger.addHandler(console)

    logger.info("Start print log")
    sum = add(2, 3)
    logger.info(f"sum is {sum}")
    logger.info("End print log")


# 控制台输出:
Start print log
sum is 5
End print log

# 日志文件 log.txt 内容:
[INFO]   Start print log
[INFO]   sum is 5
[INFO]   End print log

可以发现此时控制台的日志信息并没有被格式化为指定格式。

转载自:https://juejin.cn/post/7140443077097259022
评论
请登录