#!/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')