除了基本的Handler类,比较有用的子类如:
- StreamHandler实例发送错误到流(类似文件的对象)。
- FileHandler实例发送错误到磁盘文件。
- BaseRotatingHandler是所有轮徇日志的基类,不能直接使用。但是可以使用RotatingFileHandler和TimeRotatingFileHandler。
- RotatingFileHandler实例发送信息到磁盘文件,并且限制最大的日志文件大小,并适时轮徇。
- TimeRotatingFileHandler实例发送错误信息到磁盘,并在适当的事件间隔进行轮徇。
- SocketHandler实例发送日志到TCP/IP socket。
- DatagramHandler实例发送错误信息通过UDP协议。
- SMTPHandler实例发送错误信息到特定的email地址。
- SysLogHandler实例发送日志到UNIX syslog服务,并支持远程syslog服务。
- NTEventLogHandler实例发送日志到WindowsNT/2000/XP事件日志。
- MemoryHandler实例发送日志到内存中的缓冲区,并在达到特定条件时清空。
- HTTPHandler实例发送错误信息到HTTP服务器,通过GET或POST方法。
2.通过logging.basicConfig函数对日志的输出格式及方式做相关配置
|
logging.basicConfig函数各参数:
filename: 指定日志文件名
filemode: 和file函数意义相同,指定日志文件的打开模式,'w'或'a'
format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示:
%(levelno)s: 打印日志级别的数值
%(levelname)s: 打印日志级别名称
%(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s: 打印当前执行程序名
%(funcName)s: 打印日志的当前函数
%(lineno)d: 打印日志的当前行号
%(asctime)s: 打印日志的时间
%(thread)d: 打印线程ID
%(threadName)s: 打印线程名称
%(process)d: 打印进程ID
%(message)s: 打印日志信息
datefmt: 指定时间格式,同time.strftime()
level: 设置日志级别,默认为logging.WARNING
stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略