前言:

在实际的项目开发过程中,为了准确的定位出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")

喜欢关注点个赞!

python logger.debug_python处理logger日志相关推荐

  1. python logger.debug_Python logger模块

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...

  2. python logger.debug_python中的logger模块详细讲解

    logger 提供了应用程序可以直接使用的接口 handler将(logger创建的)日志记录发送到合适的目的输出 filter提供了细度设备来决定输出哪条日志记录 formatter决定日志记录的最 ...

  3. python中logger_Python实现Logger打印功能的方法详解

    前言 众所周知在python中有专门用于logger打印的套件叫logging,但是该套件logger仅接收一个字符串类型的logger打印信息.因此,我们在使用是需要先提前将要打印的信息拼接成一个字 ...

  4. python logger 服务器_python——logger模块

    import logging #常用日志模块 #Logger:即 Logger Main Class,是我们进行日志记录时创建的对象,我们可以调用它的方法传入日志模板和信息,来生成一条条日志记录,称作 ...

  5. Golang 操作 Logger、Zap Logger 日志

    阅读目录 Logger 介绍 默认的 Go Logger Go Logger 的优势和劣势 Zap Logger 1. Uber-go Zap 2. 为什么选择 Uber-go zap 3. 安装 4 ...

  6. python logging logger_Python logging.Logger方法代码示例

    本文整理汇总了Python中logging.Logger方法的典型用法代码示例.如果您正苦于以下问题:Python logging.Logger方法的具体用法?Python logging.Logge ...

  7. java logger错误_java logger.error日志误区

    原因分析 很多程序员会无意间可能会这样打日志 logger.error(e); logger.error(e.getMessage); logger.error("错误信息:" + ...

  8. java logger的info_logger打印日志(如何打印对象内容)

    在开发中经常要打印日志,但是有些对象如何打印呢,可以使用老土办法,通过toString方法去打印,但是这样太麻烦了.有没有一劳永逸的方法呢.下面就有个例子. 1. 一个最基本的例子 使用Logging ...

  9. python多进程打印输出_python 多进程日志 logging

    python的logging模块提供了灵活的标准模块,使得任何Python程序都可以使用这个第三方模块来实现日志记录. 但是 python 中logging 并不支持多进程,所以会遇到不少麻烦. 以 ...

  10. python服务端开发调试日志系统_Python:如何进行延迟调试日志记录

    我有一些像这样的python: def foo(): logger = logging.getLogger() # do something here logger.debug('blah blah ...

最新文章

  1. MyEclipse断点调试
  2. spring+mybatis报错
  3. 安装与配置windbg的symbol(符号)
  4. 微信接口调用 ---ACCESS_TOKEN
  5. linux编程-open函数和write函数实现copy命令
  6. hdu5459(2015沈阳网络赛J题)
  7. python做数据和大数据区别_不懂Python,不懂大数据的人,和咸鱼有什么区别?
  8. 深入理解mysql中case when流程控制语句
  9. Java核心编程总结(五、线程池与死锁),淘汰了80%的Java面试者
  10. VS中使用define和undef实现条件编译(csc.exe条件编译)
  11. mysql性能优化配置总结
  12. Javascript特效:照片墙
  13. table 转义字符 html,HTML转义字符表
  14. web端四方支付 只有安卓可以跳转
  15. Eclipse, jsp代码修改之后,页面却没有变化!解决思路
  16. 实变函数与泛函数分析学习笔记(三):有界线性算子
  17. 项目管理:精益管理法
  18. 2021-04-17 ffmpeg视频合并报错;视频合并中间添加空白
  19. 工业相机镜头的参数与选型
  20. 手机视频投屏到电视或投影仪

热门文章

  1. 玩转windows内置linux子系统_1.安装
  2. 01背包 Codeforces Round #267 (Div. 2) C. George and Job
  3. Stream上传插件(Java接口实现)
  4. Linux下shell命令——处理目录的常用命令
  5. Ubuntu中安装网易云音乐(可以直接打开的最简单的方法)
  6. 1、两数之和(python)
  7. 在unity中添加System.Windows.Forms引用和注意事项
  8. solidity 合约权限授权_Curve + zkSync L2:以太坊的ZK Rollup智能合约
  9. Yarn 和 NPM 国内快速镜像(淘宝镜像)
  10. android四级菜单,android实现菜单三级树效果