#! /usr/bin/python3.4
'''
logger对象相当于是写日志的人
hand处理器相当于是写日志的规则
'''
import logging
import datetime
def my_log_record(my_logger,my_formatter):
fh = logging.FileHandler("my.log",'w');
fh.setFormatter(my_formatter);
fh.setLevel(logging.DEBUG);
return fh;
def my_log_show(my_loggger,my_formatter):
ch = logging.StreamHandler();
ch.setFormatter(my_formatter);
ch.setLevel(logging.WARNING);
return ch;
if __name__ == '__main__':
my_logger = logging.getLogger('log'); #创建logger对象
record_formatter = logging.Formatter("%(asctime)s %(name)s -> %(levelname)-8s -> %(pathname)-8s-%(filename)-8s -> %(module)s: %(message)s","%Y-%m-%d %H:%M:%S");#创建记录格式
show_formatter = logging.Formatter("%(asctime)s: %(message)s","%H:%M:%S"); #创建显示格式
show_log = my_log_show(my_logger,show_formatter);
file_log = my_log_record(my_logger,record_formatter);
my_logger.addHandler(show_log); # 添加记录处理器
my_logger.addHandler(file_log); # 添加显示处理器
my_logger.critical("sorry");
my_logger.error("hello");
my_logger.warning("why");
my_logger.info("yet");
my_logger.debug("my");
my.log文件:
2019-03-19 16:27:46 log -> CRITICAL -> log.py -log.py -> log: sorry
2019-03-19 16:27:46 log -> ERROR -> log.py -log.py -> log: hello
2019-03-19 16:27:46 log -> WARNING -> log.py -log.py -> log: why
终端显示:
16:00:20: sorry
16:00:20: hello
16:00:20: why