标签:
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-8
import logging
#创建一个logger
logger1 = 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的输出格式formatter
formatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)
fh.setFormatter(formatter)
ch.setFormatter(formatter)
#给logger添加handler
logger1.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 message
2015-12-15 17:38:52,024 - yaobin - INFO - logger1 info message
2015-12-15 17:38:52,025 - yaobin - WARNING - logger1 warning message
2015-12-15 17:38:52,025 - yaobin - ERROR - logger1 error message
2015-12-15 17:38:52,025 - yaobin - CRITICAL - logger1 critical message
#查看文件的记录
[root@zabbix_monitor logging]# cat /tmp/test.log
2016-02-25 19:37:20,718 - yaobin - DEBUG - logger1 debug message
2016-02-25 19:37:20,719 - yaobin - INFO - logger1 info message
2016-02-25 19:37:20,719 - yaobin - WARNING - logger1 warning message
2016-02-25 19:37:20,719 - yaobin - ERROR - logger1 error message
2016-02-25 19:37:20,720 - yaobin - CRITICAL - logger1 critical message
标签:
原文地址:http://www.cnblogs.com/binhy0428/p/5221250.html