#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Author:XiaoKe
import logging
"""
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S')
"""
"""
同时打印屏幕和文件
1.定义个logger(my_logger)
2.创建1个handler用于打印到屏幕 ch=logging.StreamHandler()
3.创建1个handler用于打印到文件 fh=logging.FileHandler('my_logger.log')
4.定义打印到屏幕的handler的输出格式formatter_for_stream用于打印到屏幕时输出的日志格式
5.定义打印到文件的handler的输出格式formatter_for_file用于打印到屏幕时输出的日志格式
6.给ch这个handler设置日志格式(ch.setFormatter(formatter_for_stream))
7.给fh这个handler设置日志格式
8.把handler添加给自己创建的logger
my_logger.addHandler(ch)
my_logger.addHandler(fh)
9.使用自己定义的Logger
my_logger.info('This is info line')
"""
#创建一个Logger,取名为my_logger
my_logger=logging.getLogger()
my_logger.setLevel(logging.DEBUG)#定义全局的日志级别
#创建一个handler,用于打印到屏幕
ch=logging.StreamHandler()
ch.setLevel(logging.WARNING)
#创建一个handler,用于打印到日志文件
fh=logging.FileHandler('my_logger.log')
fh.setLevel(logging.INFO)
# 定义handler的输出格式formatter_for_stream用于打印到屏幕时输出的日志格式
formatter_for_stream = logging.Formatter("%(asctime)s %(levelname)s %(name)s %(filename)s %(process)d [filenumber:%(lineno)d] %(message)s")
# 定义handler的输出格式formatter_for_file用于打印到日志时输出的格式
formatter_for_file = logging.Formatter("%(asctime)s %(levelname)s %(name)s %(filename)s %(process)d [filenumber:%(lineno)d] %(funcName)s %(message)s")
#给ch这个handler设置日志格式
ch.setFormatter(formatter_for_stream)
#给fh这个handler设置日志格式
fh.setFormatter(formatter_for_file)
#把handler添加给自己创建的logger
my_logger.addHandler(ch)
my_logger.addHandler(fh)
# #使用自己定义的Logger
my_logger.info('This is info line')
my_logger.error('This is error line')
my_logger.critical('This is critical line')
转载于:https://blog.51cto.com/kexiaoke/1874387