python有很完整的日志记录,用的logging模块,只是了解不深,只知道简单的使用。下面的代码是在百度一轮后东拼西凑后能简单使用的记录日志代码。
这里的代码,既能将日志写入日志文件,也能将日志内容输出到控制台。
1.判断日志函数是否已经创建,如果已将创建则返回,没有创建则创建
2.判断日志文件大小,防止文件过大
# -*- coding: utf-8 -*-
"""
创建日志
输入参数:
log_name: 日志句柄名,不能有默认参数,由外部传入__name__,这样可以记录是哪个模块在记录日志
log_file_name: 日志文件名
示例:
logger = my_logger(__name__, '这是日志文件名.txt')
logger.info('这是日志内容')
"""
import logging
from logging.handlers import TimedRotatingFileHandler # 滚动日志,防止日志文件过大
def my_logger(log_name,log_file):
logger = logging.getLogger(log_name)
logger.setLevel(logging.DEBUG)
# 创建输出格式
formatter = logging.Formatter('%(asctime)s-%(name)s-%(message)s')
# 创建输出到文件的日志流
# 每个十天滚动日志,备份日志文件数为0
file_handler = TimedRotatingFileHandler(log_file,when='D',interval=10,backupCount=0)
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(formatter)
# 创建输出到cmd窗口的日志流
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
console_handler.setFormatter(formatter)
# 将日志流添加到日志句柄中
logger.addHandler(file_handler)
logger.addHandler(console_handler)
#
return logger
参考:
http://python.jobbole.com/81666/
http://www.cnblogs.com/BeginMan/p/3335110.html