python常用模块介绍之三:logging模块

Python标准模块logging 开发Python, 一直以来都是使用自己编写的logging模块. 比较土...... 今天发现python的标准模块的这个功能做的挺好, 记录一下, 以后使用模块来进行logging. 对于这个模块的介绍网上也很多, 我也不用自己写了, 比较好的如下, http://crazier9527.iteye.com/blog/290018    Python的标准logging模块 http://blog.endlesscode.com/2010/06/03/python-logging-module/   P 阅读详情


简介:

       Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式。

模块提供logger,handler,filter,formatter。

1.  logger:提供日志接口,供应用代码使用。logger最长用的操作有两类:配置和发送日志消息。可以通过logging.getLogger(name)获取logger对象,如果不指定name则返回root对象,多次使用相同的name调用getLogger方法返回同一个logger对象。

2.  handler:将日志记录(logrecord)发送到合适的目的地(destination),比如文件,socket等。一个logger对象可以通过addHandler方法添加0到多个handler,每个handler又可以定义不同日志级别,以实现日志分级过滤显示。

3.   filter:提供一种优雅的方式决定一个日志记录是否发送到handler。

4.   formatter:指定日志记录输出的具体格式。formatter的构造方法需要两个参数:消息的格式字符串和日期字符串,这两个参数都是可选的。

备注:

一般在大型的项目中,由于有多个文件需要输出log,所以需要重写logging模块,达到自定义文件输出格式,输出路径等一系列统一的要求,能省去多次重复定义logging。

具体如下例:

 

重写了logger类

#!/usr/lib/python
# -*- coding: utf-8 -*-

import logging
import os

# 自定义日志级别
level_none =logging.NOTSET
level_debug = logging.DEBUG
level_info = logging.INFO
level_warn = logging.WARN
level_error = logging.ERROR
level_critical = logging.CRITICAL

class CustomLogger(object):
   
def __init__(self, s_name_log,s_path_log= "E:/work", i_level_log=logging.DEBUG):
       
# 自定义一个名为s_name_log的logger
       
self.customLogger = logging.getLogger(s_name_log)

       
# 实例化一个format,定义了log的格式
       
fmt = logging.Formatter('%(asctime)s %(levelname)s %(message)s','%Y-%m-%d %H:%M:%S')
       
# 实例化一个filehander,log可以将message写入文件中
       
fh =logging.FileHandler(os.path.join(s_path_log, s_name_log))
       
# 实例化一个streamhandler,log可以将message输出到控制台中
       
sh = logging.StreamHandler()
       
# 实例化一个filter,对logger的name进行过滤,如果s_name_log=='JeremyLogging',输出;反之,过滤掉
        #
这个filter可以配置到handler中,也可以直接配置到logger中
       
ft = logging.Filter('JeremyLogging')

        fh.setFormatter(fmt)
        fh.setLevel(i_level_log)
       
# fh.addFilter(ft)
       
sh.setFormatter(fmt)
        sh.setLevel(i_level_log)
        sh.addFilter(ft)

       
self.customLogger.addHandler(fh)
       
self.customLogger.addHandler(sh)
       
self.customLogger.addFilter(ft)

   
def debug(self, s_message_log):
       
self.customLogger.debug(s_message_log)

   
def info(self, s_message_log):
       
self.customLogger.info(s_message_log)

   
def warning(self, s_message_log):
       
self.customLogger.warning(s_message_log)

   
def error(self, s_message_log):
       
self.customLogger.error(s_message_log)

   
def critical(self, s_message_log):
       
self.customLogger.critical(s_message_log)

 

 

测试自定义的logger类

#!/usr/lib/python

# -*- coding: utf-8 -*-



import python_logging

import sys



class JeremyLogging(object):

    def __init__(self):

        self.logger = python_logging.CustomLogger(self.__class__.__name__, i_level_log=python_logging.level_info)



    def testFunc1(self):

        self.logger.info('[%s.%s]: jeremy test info' % (self.__class__.__name__, sys._getframe().f_code.co_name))

        self.logger.debug('[%s.%s]: jeremy test debug' % (self.__class__.__name__, sys._getframe().f_code.co_name))

        self.logger.error('[%s.%s]: jeremy test error' % (self.__class__.__name__, sys._getframe().f_code.co_name))



log = JeremyLogging()

log.testFunc1()

 

输出结果:

         控制台中显示:

         2016-09-27 16:37:21 ERROR[JeremyLogging.testFunc1]: jeremy test error

        

         文本中显示: cat E:/work/ JeremyLogging

         2016-09-27 16:37:21 ERROR [JeremyLogging.testFunc1]: jeremytest error

day18 logging模块 很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误,警告等信息输出,python的logging模块提供了标准的日志借口,你可以通过它来储存各种格式的日志,logging的日志可以分为debug(),warning(),error(),critical()五个级别,下面我们看看怎么用。 级别:CRITICAL>ERROR>WARNING>INF... 阅读详情

相关推荐

Python常用模块 之 logging:日志模块

Python常用模块 之 logging:日志模块

孤寒者的博客 17万+

Python logging模块详解

简单将日志打印到屏幕: import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error message') logging.critical('critical message')输出: WARNI

刀刀的专栏 13万+

Python常用模块 之 datetime模块和logging模块实战 使用

Python常用模块 之 datetime模块和logging模块实战 使用

孤寒者的博客 3万+

Python3教程: logging 模块用法

Python logging 模块定义了为应用程序和库实现灵活的事件日志记录的函数和类。程序开发过程中,很多程序都有记录日志的需求,并且日志包含的信息有正常的程序访问日志还可能有错误、警告等信息输出,Python 的 logging 模块提供了标准的日志接口,可以通过它存储各种格式的日志,日志记录提供了一组便利功能,用于简单的日志记录用法。...

Python热爱者的博客 6157

DVWA靶场实战:手把手教你绕过文件上传限制,用蚁剑连接一句话木马

本文详细介绍了在DVWA靶场中如何绕过文件上传限制并利用蚁剑连接一句话木马的实战技巧。通过分析文件上传漏洞原理、创建一句话木马、使用Burp Suite拦截修改请求以及配置蚁剑连接WebShell的全过程,帮助安全研究人员深入理解Web安全防护与攻击技术。

weixin_30335575的博客 90

从入门到精通:dirmap 高级 Web 目录扫描实战指南

本文提供了一份从环境搭建到高级配置的dirmap Web目录扫描实战指南。详细解析了工具安装、核心配置文件dirmap.conf的深度调优,包括递归扫描、四种扫描模式(字典、爆破、爬虫、Fuzz)的实战应用,并演示了分阶段资产发现的完整工作流程,帮助安全人员高效发现隐藏目录与敏感文件。

rnn9storyteller的博客 480

Python的Logging模块

万字长文带你学透Python的Logging模块,文章通俗易懂且带有相关代码演示,具体案例助你理解

m0_60981735的博客 1万+

Feko仿真GPS微带天线学习笔记

为了优化方便,使参数变量化,所以定义几个变量在CADFEKO左侧浏览器中如图所示定义变量,如下表贴片的尺寸切角尺寸feed =-6.4馈电点距坐标原点的距离sub_w=45基板的宽度sub_d=45基板的长度sub_h=5基板的高度epsR=5.6介电常数损耗角正切。

qq_36521926的博客 3989

python3--logging好用的日志模块

logging 日志记录

weixin_44517278的博客 1085

STM32嵌入式开发实战:如何用miniLZO压缩算法节省70%存储空间(附完整工程)

本文详细介绍了如何在STM32嵌入式开发中使用miniLZO无损压缩算法实现高达70%的存储空间节省。通过对比分析不同轻量级算法,重点讲解miniLZO的内存优化配置、分块压缩策略和完整工程实现,帮助开发者有效解决嵌入式系统中的存储瓶颈问题。

ss78901的博客 881

win10安装openvpn客户端

进入C:\Program Files\TAP-Windows\bin目录,然后右键用管理员权限执行addtap.bat文件,此文件执行会创建一个网卡。链接:https://pan.baidu.com/s/1KAifTiP7qp1i5ZkfdnfwkA。4.2 进入安装目录的config下新建一个文件夹,将证书文件全部挪进去(不移动.ovpn文件)3.4 将拿到的ssl认证文件放入安装目录的config目录下。然后修改ovpn文件 “./”代表当前路径,第二个链接重复。3.1 一直下一步到这里打上勾。

qq_36200932的博客 3万+

python logging 控制其他模块等级_Python常用模块:logging模块介绍

简单使用#!/usr/local/bin/python# -*- coding:utf-8 -*-import logginglogging.debug('debug message')logging.info('info message')logging.warn('warn message')logging.error('error message')logging.critical('cri...

weixin_42310347的博客 209

具有I2S输出的多模数字麦克风ICS-43434咪头LR引脚接地或电源WS接LRCLK

ICS-43434 是一款数字 IS 输出底部收音孔麦克风。完整的 ICS-43434 解决方案包括 MEMS 传感器、信号调理、模数转换器、抽取和抗混叠滤波器、电源管理以及行业标准的 24 位 12S 接口。12S 接口允许 ICS-43434 直接连接到数字处理器,例如 DSP 和微控制器,而无需系统中的音频编解码器。

易板 5661

python filter过滤器的使用_Python常用模块:logging模块介绍

简单使用#!/usr/local/bin/python# -*- coding:utf-8 -*-import logginglogging.debug('debug message')logging.info('info message')logging.warn('warn message')logging.error('error message')logging.critical('cri...

weixin_39763683的博客 691

vcpkg管理OpenCASCADE的5个高效技巧:从多版本共存到离线部署

本文详细介绍了使用vcpkg高效管理OpenCASCADE的5个实用技巧,包括多版本共存、性能优化、团队共享、CI/CD集成和离线部署。通过自动配置和版本控制,vcpkg显著简化了OpenCASCADE的开发环境管理,特别适合工业级CAD开发场景。

rain6的博客 187

全网详细解决:无法将 “xxx” 项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次

全网详细解决:无法将 “xxx” 项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

念兮为美 5万+

python中logging模块详解_Python logging模块handlers用法详解

一、handlers是什么?logging模块中包含的类用来自定义日志对象的规则(比如:设置日志输出格式、等级等)常用3个子类:StreamHandler、FileHandler、TimedRotatingFileHandler二、handlers基础应用2.1 StreamHandler 控制台输出日志import logging#创建一个logger日志对象logger = logging.g...

weixin_39988331的博客 184

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

python logging模块handlers用法详解

常用的3个日志文件类:StreamHandler、FileHandler、TimeRotatingFileHandler 1)StreamHandler:把日志输出到控制台 #!/usr/bin/env python3 # _*_ coding: utf-8 _*_ import logging import os.path import time from logging import handlers class Logger(object): def __init__(self):

哎呀美呔小丸子 5781

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python模块(hashlib,configparse,logging)

hashlib configparse logging 转载于:https://www.cnblogs.com/zhuzhaoyang/p/8602482.html

weixin_30847865的博客 101

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

常用模块汇总

1.数据库模块pymysql 2. http模块urllibrequestsurllib 3.日志logging 4.excelxlrd 转载于:https://www.cnblogs.com/peak911/p/11507052.html

weixin_38168081的博客 258

python中logging日志模块详解

https://www.cnblogs.com/xianyulouie/p/11041777.html logging模块的处理流程 1.四大组件 (1)日志器(Logger):产生日志的一个接口。 (2)处理器(Handler):把产生的日志发送到相应的目的地。 (3)过滤器(Filter):更精细的控制那些日志输出。 (4)格式器(Formatter):对输出的信息进行格式化。 2.Logger (1)产生一个日志 (2)操作 Logger.setLevel() #设置日志器将会处理的日志消息的最低严重

holwell的博客 313

python 常用模块2

hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 摘要算法又称哈希算法、散列算法。它通过一个函数,把 任意长度的数据 转换为一个 长度固定的数据串(通常用16进制的字符串表示)。 摘要算法就是通过摘要函数f()对任意长度的数据data计算出 固定长度的摘要digest,目的是为了发现原始数据是否被人篡改...

weixin_30618985的博客 92

Python编程之常用模块

本文摘要介绍了Python中常用的12个模块: time模块:处理时间戳、格式化和结构化时间 datetime模块:时间加减运算 random模块:生成随机数和随机选择 os模块:与操作系统交互,处理文件路径 sys模块:与解释器交互,实现进度条 json/pickle模块:数据序列化和反序列化 hashlib模块:加密算法实现 shutil模块:高级文件操作 subprocess模块:执行系统命令 shelve/xml模块:数据持久化和XML处理 configparser模块:配置文件处理 logging

Empty_777的博客 1303

Python 常用模块(八):logging模块

本文系统讲解了 Python 中日志模块(logging)的原理、用途与在实际项目中的最佳实践。我们以 Django 日志配置为切入点,引出了 logging 模块中常见的类与技巧,并详细列举了格式化字符串的使用方法。在理解源码的基础上,探讨了日志调用的时机与位置对后续排查问题的重要性。同时结合实际案例,介绍了日志在爬虫项目中的具体应用,并推荐了如 loguru 这样的优秀第三方日志库,为开发者构建更加灵活、可读性强的日志系统提供参考。适合所有对日志感兴趣的 Python 开发者阅读与实践。

XAMO Lab|代码、调试与复盘笔记 2460

python 常用内置模块之 logging(日志输出)

python 常用内置模块之 logging(日志输出)

墨鸦的博客 7660
上一篇: python常用模块介绍之二:copy模块
下一篇: OpenStack使用的默认负载均衡器Haproxy性能测试
赤焰军
博客等级 码龄12年 87粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值