标签:
The logging library takes a modular approach and offers several categories of components: loggers, handlers, filters, and formatters.
一.直接在程序中定义Logger、Handler、Fiter、Formatter:[root@monitor logging]# vim test2.py#!/usr/bin/python#coding=utf-8import logging#创建一个loggerlogger1 = logging.getLogger(‘yaobin‘)logger1.setLevel(logging.DEBUG) #全局的日志水平,最高,奇葩东西,应该单独最高的,不然我单独设置日志水平没意义了。#创建一个handler,用于写入日志文件创建一个handler,用于写入日志文件fh = logging.FileHandler(‘/tmp/test.log‘)fh.setLevel(logging.DEBUG) #单独设置日志水平#再创建一个handler,用于输出到控制台,即是屏幕ch = logging.StreamHandler()ch.setLevel(logging.WARNING) #单独设置日志水平#最后我发现单独设置的日志水平比全局的高,生效单独的日志水平#单独设置的日志水平比全局的低,生效全局的日志水平# 定义handler的输出格式formatterformatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)fh.setFormatter(formatter)ch.setFormatter(formatter)#给logger添加handlerlogger1.addHandler(fh)logger1.addHandler(ch)#记录日志logger1.debug(‘logger1 debug message‘)logger1.info(‘logger1 info message‘)logger1.warning(‘logger1 warning message‘)logger1.error(‘logger1 error message‘)logger1.critical(‘logger1 critical message‘)#执行脚本[root@monitor logging]# python test2.py #马上就有屏幕的输出2015-12-15 17:38:52,024 - yaobin - DEBUG - logger1 debug message2015-12-15 17:38:52,024 - yaobin - INFO - logger1 info message2015-12-15 17:38:52,025 - yaobin - WARNING - logger1 warning message2015-12-15 17:38:52,025 - yaobin - ERROR - logger1 error message2015-12-15 17:38:52,025 - yaobin - CRITICAL - logger1 critical message#查看文件的记录[root@zabbix_monitor logging]# cat /tmp/test.log2016-02-25 19:37:20,718 - yaobin - DEBUG - logger1 debug message2016-02-25 19:37:20,719 - yaobin - INFO - logger1 info message2016-02-25 19:37:20,719 - yaobin - WARNING - logger1 warning message2016-02-25 19:37:20,719 - yaobin - ERROR - logger1 error message2016-02-25 19:37:20,720 - yaobin - CRITICAL - logger1 critical message
标签:
原文地址:http://www.cnblogs.com/binhy0428/p/5221250.html