前言

是Python内置的标准模块,主要用于输出运行日志

基本语法


import logging # # logging模块默认设置的日志级别是warning,而debug和info的级别是低于warning的,所以不会打印这两种日志信息
# logging.basicConfig(level=logging.DEBUG)
# logging.debug("debug信息")
# logging.info("info信息")
# logging.warning("warning信息")
# logging.error("error信息")
# logging.critical("critical信息") # 创建一个logger对象,并且设置默认的日志级别
logger = logging.getLogger()
logger.setLevel(logging.DEBUG) # 创建日志格式对象
format = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s') #创建FileHandler对象---输出文件日志
fp = logging.FileHandler('test.log','a',encoding='utf-8') # fp.setLevel(logging.DEBUG)
fp.setFormatter(format)
logger.addHandler(fp) # 创建流对象----控制台输出日志
sp = logging.StreamHandler()
sp.setFormatter(format)
logger.addHandler(sp)
logger.setLevel(logging.DEBUG) logger.info('文件记录日志')

封装log实现


import os
import logging
import time
from common.configutils import config_utils current_path = os.path.dirname(__file__)
log_output_path = os.path.join( current_path,'..', config_utils.LOG_PATH ) class LogUtils:
def __init__(self,log_path=log_output_path):
# 创建一个logger对象,并且设置默认的日志级别(必须设置默认日志级别)
log_level = int(config_utils.LOG_LEVER)
self.logger = logging.getLogger() #创建日志对象
self.logger.setLevel(log_level)
self.log_name = os.path.join(log_path, 'ApiTest_%s.log' % time.strftime('%Y_%m_%d')) # 创建日志格式对象
format = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s') #创建日志格式对象
# 创建FileHandler对象
fp = logging.FileHandler(self.log_name, 'a', encoding='utf-8')
fp.setLevel(log_level)
fp.setFormatter(format)
self.logger.addHandler(fp) # 创建流对象
sp = logging.StreamHandler()
sp.setFormatter(format)
self.logger.addHandler(sp)
self.logger.setLevel(log_level) sp.close()
fp.close() def get_log(self):
return self.logger if __name__ == '__main__':
logger = LogUtils().get_log()
logger.debug("debug测试写日志功能")

python-logging日志模块,以及封装实现的更多相关文章

  1. Python logging(日志)模块

    python日志模块 内容简介 1.日志相关概念 2.logging模块简介 3.logging模块函数使用 4.logging模块日志流处理流程 5.logging模块组件使用 6.logging配 ...

  2. python logging日志模块

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

  3. python logging 日志模块的配置和使用

    import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(line ...

  4. python 自动化之路 logging日志模块

    logging 日志模块 http://python.usyiyi.cn/python_278/library/logging.html 中文官方http://blog.csdn.net/zyz511 ...

  5. Python入门之logging日志模块以及多进程日志

    本篇文章主要对 python logging 的介绍加深理解.更主要是 讨论在多进程环境下如何使用logging 来输出日志, 如何安全地切分日志文件. 1. logging日志模块介绍 python ...

  6. Python 中 logging 日志模块在多进程环境下的使用

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 中 logging 日志模块在多进程环境下的使用 使用 Pytho ...

  7. python中的logging日志模块

    日志是程序不可或缺的一部分.它可以记录程序的运行情况,帮助我们更便捷地发现问题,而python中的logging日志模块给我们提供了这个机会. logging给我们提供了五种函数用来输出日志:debu ...

  8. python logging 日志轮转文件不删除问题

    前言 最近在维护项目的python项目代码,项目使用了 python 的日志模块 logging, 设定了保存的日志数目, 不过没有生效,还要通过contab定时清理数据. 分析 项目使用了 logg ...

  9. pyhton——logging日志模块的学习

    https://www.cnblogs.com/yyds/p/6901864.html 本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模 ...

  10. logging 日志模块学习

    logging 日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪,所以还是灰常重要滴,下面我就来从入门到放弃的系统学习一下日志既可以在屏幕上显示,又可以在文件中体现. ...

随机推荐

  1. 判断jquery类库是否加载,如未加载则加载。

    本人所有文章使用到的东西均在"渭南电脑维修网"网站中得以实现和应用,还请大家参考. 抄写别人网站的同时,N多不同的网站,势必有N多的css.javascript引用文件都会重复引用 ...

  2. 带你十天轻松搞定 Go 微服务系列(二)

    上篇文章开始,我们通过一个系列文章跟大家详细展示一个 go-zero 微服务示例,整个系列分十篇文章,目录结构如下: 环境搭建 服务拆分(本文) 用户服务 产品服务 订单服务 支付服务 RPC 服务 ...

  3. Servlet Filter(过滤器)

    Servlet Filter 又称 Servlet 过滤器,它是在 Servlet 2.3 规范中定义的,能够对 Servlet 容器传给 Web 资源的 request 对象和 response 对 ...

  4. python17day

    昨日回顾 自定义模块等 今日内容 自定义模块 模块是什么? 抖音:20万行代码全部放在一个py文件? 为什么不行? 代码多,读取时间长 代码不容易维护 所以应该? 一个py文件拆分100个文件,100 ...

  5. Java当中“+=”和“=+”的区别

    "+="会自动类型强制转换! 隐含了一个强制类型转换! 一 string a1 = "9"; int a2 = 10; a1+=a2; a1=a1+a2; 不会 ...

  6. th 表达式的简单使用。

    一.使用场景,页面中,循环遍历,获得控制器穿过来的值. 1.1 控制器 /** * 获得所有的图书信息 * @return */ @RequestMapping("/turnIndexPag ...

  7. C++ STL 容器概述

    在STL编程中,容器是经常用到的一种数据结构,在C++标准库中,容器分为: 序列式容器 关联式容器 二者本质区别在于,序列式容器是通过元素在容器中的位置进行顺序存储和元素访问.关联容器则是通过键[ke ...

  8. Python标准库:datetime 时间和日期模块 —— 时间的获取和操作详解

    datetime 时间和日期模块 datetime 模块提供了以简单和复杂的方式操作日期和时间的类.虽然支持日期和时间算法,但实现的重点是有效的成员提取以进行输出格式化和操作.该模块还支持可感知时区的 ...

  9. 马哈鱼间接数据流中的where-group-by子句

    马哈鱼间接数据流中的where-group-by子句 本文介绍间接数据流中的where-group-by子句. 1.列在where子句中 WHERE子句中源表中的某些列不影响目标列,但对所选行集至关重 ...

  10. 「NOI十联测」黑暗

    「NOI十联测」黑暗 \(n\) 个点的无向图,每条边都可能存在,一个图的权值是连通块个数的 \(m\) 次方,求所有可能的图的权值和.(n≤30000,m≤15) 令\(ans[n][m]\)为n个 ...