首页 > logging模块

logging模块

 

import logging
from conf import settingsdef logger(log_type):# 生成 logger 对象logger = logging.getLogger(log_type)logger.setLevel(settings.LOG_LEVEL)# 生成handler对象,向文件输出日志信息log_file = "%s/log/%s.log" % (settings.BASE_DIR, log_type)global fhfh = logging.FileHandler(log_file)fh.setLevel(settings.LOG_LEVEL)# 生成formatter对象formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')# formatter对象绑定到handler对象
    fh.setFormatter(formatter)if logger.handlers:  # 清空logger.handlers,否则会重复打印日志
        logger.handlers.pop()# handler对象绑定到logger
    logger.addHandler(fh)return logger
logger.py

 

%(name)s    Logger的名字
%(levelno)s    数字形式的日志级别
%(levelname)s    文本形式的日志级别
%(pathname)s    调用日志输出函数的模块的完整路径名,可能没有
%(filename)s    调用日志输出函数的模块的文件名
%(module)s    调用日志输出函数的模块名
%(funcName)s    调用日志输出函数的函数名
%(lineno)d    调用日志输出函数的语句所在的代码行
%(created)f    当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d    输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s    字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(thread)d    线程ID。可能没有
%(threadName)s    线程名。可能没有
%(process)d    进程ID。可能没有
%(message)s    用户输出的消息
自定义格式

 

 

生成logger对象

 1 def logger():
 2     logger = logging.getLogger()
 3 
 4     #设置logger
 5     fh = logging.FileHandler('text_log')#向文件发送信息
 6     ch = logging.StreamHandler()#向屏幕发送信息
 7 
 8     #定义格式
 9     fm = logging.Formatter('%(asctime)s %(filename)s')
10     fh.setFormatter(fm)  #设置fh的格式
11     ch.setFormatter(fm)  #设置ch的格式
12 
13     logger.addHandler(fh)  #传给logger
14     logger.addHandler(ch)  #传给logger
15     logger.setLevel('DEBUG')
16 
17     return logger

调用logger

logging的日志可以分为 debug(), info(), warning(), error() and critical()5个级别

1 logger = logger()
2 
3 logging.debug('debug message')
4 logging.info('info message')
5 logging.warning('warning message')
6 logging.error('error message')
7 logging.critical('critical message')

注意

如果指定名称,则mylogger为root的子树,如果定义两个子树名字相同,则实际生成一个子树(根默认名称为root)

1 logger1 = logging.getLogger('mylogger')
2 
3 logger2 = logging.getLogger('mylogger')

 

转载于:https://www.cnblogs.com/webc/p/8509881.html

更多相关:

  • 关于使用python logging模块的几点总结 使用python的标准日志模块logging可以非常方便地记录日志。Python日志系统非常丰富。添加结构化或非结构化日志输出到python代码,写到文件,输出到控制台,发送到系统日志,或者自定义输出格式都很容易。 下面是我实践过程中遇到的一些经验和教训的总结。 1. 一个简单...

  • ELK:(ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三个开源工具组成),Elasticsearch用于存储日志信息,Logstash用于收集日志,Kibana用于图形化展示。上一节我们介绍了如何使用docker-compose搭建ELK日志分析系统。传送门:传说中的ELK日志分析系统,手把手教你...

  • 欢迎关注头条号:老顾聊技术精品原创技术分享,知识的组装工目录前言常用日志组件什么是日志门面和日志实现常见的日志框架日志使用@slf4j注解日志的配置logback-spring配置总结前言日志是我们系统必备的功能之一,可以帮助我们开发人员定位系统的异常、错误以及运行流程的重要的工具。今天老顾就来介绍一下Spring boot的默认的l...

  • glog简介 glog是著名的google开源C++日志库glog(https://github.com/google/glog)的golang版本,glog是一个轻量级的日志库,上手简单不需要配置文件并且稳定高效,可以自定义控制的内容比较少。  glog主要有以下几个特点:  1. glog有四种日志等级INFO < WARING...

  • 应用场景 该配置文件用于ATS用作反向代理模式,访问日志被server域名分隔。比如,我想将sohu和ifeng的域名的日志分别记在两个不同的日志文件中,其它的日志统一记在默认的日志文件中。 配置 为了将不同源站的HTTP transaction记录在不同的日志文件中,你必须在log_hosts.config中列举出每...

  • 缘起 近来因为公司项目需要,阅读了一部分ATS logging system的源码实现,越发觉得logs_xml.config文件的配置非常重要,而我目前只是实践了一点它的皮毛。为此,根据自己的理解,翻译了官网的这篇文档,以作备忘。 logs_xml.config文件定义了自定义日志文件格式,过滤器和处理选项。文件格式采用x...

  • 全卷积网络(FCN) 1.全卷积神经网络介绍 FCN对图像进行像素级的分类,从而解决了语义级别的图像分割(semantic segmentation)问题。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类(全联接层+softmax输出)不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的fea...

  • printf()函数优点在于可以格式化输出 格式:   %['padding_character][-][width][.precision]type   所有的转换说明都是以%开始,如果想打印一个%符号,必须用%% ;   参数“'padding_character”是可选,它将被用来填充变量直至所指定的宽度,该参...

  • 给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。 输入格式: 输入在一行中给出一个长度不超过10000的、仅...

  • 给定两个整数A和B,输出从A到B的所有整数以及这些数的和。 输入格式: 输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。 输出格式: 首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。 输入样例:...

  • python面试题目 原文地址:https://www.usblog.cc/blog/post/justzhl/b5cc9a05c7d2 问题一:以下的代码的输出将是什么? 说出你的答案并解释。 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Parent(object):     x...