[py]python logging模块

本文详细介绍了Python中logging模块的基本使用方法,包括设置日志级别、格式化输出、同时输出到控制台和文件等常见需求,并提供了一个封装好的日志初始化函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

默认级别是warning,输出到console

import logging

logging.info(1213231)
logging.warning(1213231)

调整级别为info,输出到console

import logging

logging.basicConfig(level=logging.DEBUG)
logging.info(1213231)
logging.warning(1213231)

日志内容输出到文件

import logging

logging.basicConfig(filename="test.log", level=logging.DEBUG)
logging.info(1213231)
logging.warning(1213231)

日志基本操作

import logging

# 文件 格式
f1 = logging.FileHandler("f1.log", 'a', encoding='utf-8')
f1.setFormatter(fmt="")

# 级别
logger1 = logging.Logger("s1", level=logging.INFO)
logger1.addHandler(f1)


logger1.debug("hello world")

日志基本操作–带格式


import logging

f2 = logging.FileHandler("f2.txt", 'a', encoding='utf8')
fmt = logging.Formatter("%(name)s - %(asctime)s - %(message)s")
f2.setFormatter(fmt)

logger2 = logging.Logger("s1", level=logging.INFO)
logger2.addHandler(f2)


# logger1.debug("hi1")
logger2.info("hi2")

输出到屏幕和文件

#!/usr/bin/env python
# encoding: utf-8
import logging

# 定义handler的输出格式
formatter = logging.Formatter(
    '%(asctime)s--%(name)s--%(filename)s--%(message)s')

# 创建一个handler,用于写入日志文件,只输出debug级别以上的日志
fh = logging.FileHandler('f3.log')
fh.setFormatter(formatter)

# 再创建一个handler,用于输出到控制台
ch = logging.StreamHandler()
ch.setFormatter(formatter)

# 创建一个logging命名为mylogger,%(name)s日志格式里可调用这个名字
# logger = logging.Logger("mylogger", level=logging.DEBUG)
logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)

# 给logger添加handler
logger.addHandler(fh)
logger.addHandler(ch)

# 记录两条日志
logger.info('foorbar')
logger.debug('just a test')

封装成函数

import logging


def InitLogger(filename, level, name):
    # create a logging object
    logger = logging.getLogger(name)
    logger.setLevel(level)

    # format log file
    formatter = logging.Formatter(
        '%(asctime)s %(name)s-%(levelname)s-%(filename)s-[line:%(lineno)s]: %(message)s')

    # create the logging file handler and format the log file
    fh = logging.FileHandler(filename, mode='a+')
    fh.setFormatter(formatter)

    # create logging print Stream
    ch = logging.StreamHandler()
    ch.setFormatter(formatter)

    # logger object load the hander
    logger.addHandler(fh)
    logger.addHandler(ch)
    return logger


logger = InitLogger("ma.log", "DEBUG", "maxiaolang")
logger.info("hello info")

参考: http://aolens.blog.51cto.com/7021142/1902668

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值