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")
喜欢关注点个赞!
python logger.debug_python处理logger日志相关推荐
- python logger.debug_Python logger模块
1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...
- python logger.debug_python中的logger模块详细讲解
logger 提供了应用程序可以直接使用的接口 handler将(logger创建的)日志记录发送到合适的目的输出 filter提供了细度设备来决定输出哪条日志记录 formatter决定日志记录的最 ...
- python中logger_Python实现Logger打印功能的方法详解
前言 众所周知在python中有专门用于logger打印的套件叫logging,但是该套件logger仅接收一个字符串类型的logger打印信息.因此,我们在使用是需要先提前将要打印的信息拼接成一个字 ...
- python logger 服务器_python——logger模块
import logging #常用日志模块 #Logger:即 Logger Main Class,是我们进行日志记录时创建的对象,我们可以调用它的方法传入日志模板和信息,来生成一条条日志记录,称作 ...
- Golang 操作 Logger、Zap Logger 日志
阅读目录 Logger 介绍 默认的 Go Logger Go Logger 的优势和劣势 Zap Logger 1. Uber-go Zap 2. 为什么选择 Uber-go zap 3. 安装 4 ...
- python logging logger_Python logging.Logger方法代码示例
本文整理汇总了Python中logging.Logger方法的典型用法代码示例.如果您正苦于以下问题:Python logging.Logger方法的具体用法?Python logging.Logge ...
- java logger错误_java logger.error日志误区
原因分析 很多程序员会无意间可能会这样打日志 logger.error(e); logger.error(e.getMessage); logger.error("错误信息:" + ...
- java logger的info_logger打印日志(如何打印对象内容)
在开发中经常要打印日志,但是有些对象如何打印呢,可以使用老土办法,通过toString方法去打印,但是这样太麻烦了.有没有一劳永逸的方法呢.下面就有个例子. 1. 一个最基本的例子 使用Logging ...
- python多进程打印输出_python 多进程日志 logging
python的logging模块提供了灵活的标准模块,使得任何Python程序都可以使用这个第三方模块来实现日志记录. 但是 python 中logging 并不支持多进程,所以会遇到不少麻烦. 以 ...
- python服务端开发调试日志系统_Python:如何进行延迟调试日志记录
我有一些像这样的python: def foo(): logger = logging.getLogger() # do something here logger.debug('blah blah ...
最新文章
- MyEclipse断点调试
- spring+mybatis报错
- 安装与配置windbg的symbol(符号)
- 微信接口调用 ---ACCESS_TOKEN
- linux编程-open函数和write函数实现copy命令
- hdu5459(2015沈阳网络赛J题)
- python做数据和大数据区别_不懂Python,不懂大数据的人,和咸鱼有什么区别?
- 深入理解mysql中case when流程控制语句
- Java核心编程总结(五、线程池与死锁),淘汰了80%的Java面试者
- VS中使用define和undef实现条件编译(csc.exe条件编译)
- mysql性能优化配置总结
- Javascript特效:照片墙
- table 转义字符 html,HTML转义字符表
- web端四方支付 只有安卓可以跳转
- Eclipse, jsp代码修改之后,页面却没有变化!解决思路
- 实变函数与泛函数分析学习笔记(三):有界线性算子
- 项目管理:精益管理法
- 2021-04-17 ffmpeg视频合并报错;视频合并中间添加空白
- 工业相机镜头的参数与选型
- 手机视频投屏到电视或投影仪
热门文章
- 玩转windows内置linux子系统_1.安装
- 01背包 Codeforces Round #267 (Div. 2) C. George and Job
- Stream上传插件(Java接口实现)
- Linux下shell命令——处理目录的常用命令
- Ubuntu中安装网易云音乐(可以直接打开的最简单的方法)
- 1、两数之和(python)
- 在unity中添加System.Windows.Forms引用和注意事项
- solidity 合约权限授权_Curve + zkSync L2:以太坊的ZK Rollup智能合约
- Yarn 和 NPM 国内快速镜像(淘宝镜像)
- android四级菜单,android实现菜单三级树效果