python logger.debug_python处理logger日志

前言:

在实际的项目开发过程中,为了准确的定位出bug,需要对错误进行日志记录,这里简要记录一下使用python的logging模块实现日志的记录。

logger的常见使用

1.日志等级

2.实际开发中的日志记录

3.日志输出到屏幕

4.日志输入到文件

5.完整代码实例

日志的等级:

1.等级排序:

debug < info < warn < error < fatal

2.各等级的含义:

1.debug: 级别最低,用户开发过程中的调试

2.info:打印程序运行是的正常的信息,用于替代print输出

3.warn: 打印警告信息,不影响程序的运行

4.error: 程序运行出错,可以修复,常用在except异常捕获之后

5.fatal:非常严重,无法修复,程序继续运行的话后果非常严重

3.使用注意事项:

设置了日志等级后,调用比等级低的日志记录函数则不会输出

实际开发中的日志记录

1.在开发阶段,便于调试,会将日志信息输出到控制台

2.项目上线后,便于后期的错误定位,会将日志记录到log文件

日志输出到屏幕

logging.StreamHandler()

日志输入到文件

logging.handlers.TimedRotatingFileHandler(filename, when, backupCount, encoding)

各参数含义:

1.filename:log文件名

2.when:间隔的时间单位

S:秒

M:分

H:小时

D:天、

W:每星期(interval==0时代表星期一)

midnight: 每天凌晨

3.backupCount:备份文件的个数,若超过该值,就会自动删除

4.encoding:编码格式,一般为:utf-8

完整代码实例

# coding:utf-8

import os

import logging

from logging import handlers

# 日志根路径

LOG_ROOT = "I:/"

def get_logger(log_filename, level=logging.DEBUG, when='midnight', back_count=0):

"""

:brief 日志记录

:param log_filename: 日志名称

:param level: 日志等级

:param when: 间隔时间:

S:秒

M:分

H:小时

D:天

W:每星期(interval==0时代表星期一)

midnight: 每天凌晨

:param back_count: 备份文件的个数,若超过该值,就会自动删除

:return: logger

"""

logger = logging.getLogger(log_filename)

logger.setLevel(level)

log_path = os.path.join(LOG_ROOT, "logs")

if not os.path.exists(log_path):

os.mkdir(log_path)

log_file_path = os.path.join(log_path, log_filename)

# log输出格式

formatter = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')

# 输出到控制台

ch = logging.StreamHandler()

ch.setLevel(level)

# 输出到文件

fh = logging.handlers.TimedRotatingFileHandler(

filename=log_file_path,

when=when,

backupCount=back_count,

encoding='utf-8')

fh.setLevel(level)

# 设置日志输出格式

fh.setFormatter(formatter)

ch.setFormatter(formatter)

# 添加到logger对象里

logger.addHandler(fh)

logger.addHandler(ch)

return logger

if __name__ == "__main__":

logger = get_logger("my.log")

logger.debug("debug test")

logger.info("info test")

logger.warn("warn test")

logger.error("error test")

喜欢关注点个赞!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值