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的主要内容,如果未能解决你的问题,请参考以下文章