python之logging模块2

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之logging模块2相关的知识,希望对你有一定的参考价值。

四、 Handler对象、Formatter对象、Filter对象、Filter对象

这里简要介绍

 

#coding=utf8
‘‘‘
Created on 2013年9月23日
Function : Handler对象、Formatter对象、Filter对象、Filter对象
@author : BeginMan
‘‘‘
import logging
import os
‘‘‘Logger‘‘‘
l = logging.Logger(‘root‘)          #创建Logger对象
log = logging.getLogger(‘root‘)     #通过logging.getLogger创建Logger对象
print l                             #<logging.Logger object at 0x0000000001DF5B70>
print log                           #<logging.Logger object at 0x00000000022A16D8>
 
‘‘‘Handler‘‘‘
handler = logging.Handler()         #创建Handler对象
handler.__init__(logging.DEBUG)     #通过设置level来初始化Handler实例
handler.createLock()                #初始化一个线程锁可以用来序列化访问底层I / O功能,这可能不是线程安全的。
handler.acquire()                   #获取线程锁通过handler.createLock()
handler.release()                   #释放线程锁通过获取handler.acquire()
handler.setLevel(logging.DEBUG)     #设置临界值,如果Logging信息级别小于它则被忽视,当一个handler对象被创建,级别没有被设置,导致所有的信息会被处理。
handler.setFormatter("%(levelname)s,%(message)s")              #设置格式
# handler.addFilter(filter)         #添加指定的过滤器
# handler.removeFilter(filter)      #移除指定的过滤器
# handler.filter(record)            #通过设置过滤器适用于记录并返回真值如果要处理的记录
handler.flush()                     #确保所有的日志输出已经被刷新
handler.close()                     #收拾任何所使用资源处理程序,
# handler.handle(record)            #有条件地发出指定的日志记录,这取决于过滤器可能被添加到处理程序。
# handler.handlerError(record)      #处理错误
# handler.format(record)            #格式输出
# handler.emit(record)
 
#Formatter:http://docs.python.org/2.7/library/logging.html#logging.Formatter
 
‘‘‘Formatter:
the base Formatter allows a formatter string to be specified,is none ,used default value ‘%(message)s‘
class logging.Formatter(fmt=None,datefmt=None)
If no fmt is specified, ‘%(message)s‘ is used. If no datefmt is specified, the ISO8601 date format is used.
‘‘‘
fm = logging.Formatter(‘%(levelname)s:%(message)s‘,‘%m/%d/%Y %I:%M:%S %p‘)
print fm        #<logging.Formatter object at 0x0000000002311828>
#有如下方法:format()、formatTime()、formatException()
 
#http://docs.python.org/2.7/library/logging.html#formatter-objects
 
‘‘‘Filter‘‘‘
‘‘‘
class logging.Filter(name=‘‘):
    返回Filter实例,If name is specified, it names a logger which, together with its children, 
  will have its events allowed through the filter. If name is the empty string, allows every event.
用于Loggers、Handlers等过滤的设置
如果一个过滤器初始化为‘A.B‘,则允许‘A.B/A.B.C/A.B.C.D/A.B.D‘等,但不允许‘A.BB/B.A‘等通过
如果初始化为空字符串,则没有过滤。
它有filter()方法
‘‘‘
 
‘‘‘LogRecord ‘‘‘
‘‘‘class logging.LogRecord(name, level, pathname, lineno, msg, args, exc_info, func=None)
LogRecord 实例可以被Logger自动创建.也可以通过makeLogRecord()来创建‘‘‘
#http://docs.python.org/2.7/library/logging.html#logrecord-objects

以上是关于python之logging模块2的主要内容,如果未能解决你的问题,请参考以下文章

Python 之 logging日志模块

python模块之logging

Python之日志处理 logging模块

Python之日志处理(logging模块)

Python入门之Python中的logging模块

python日志之logging模块--理解