输出日志文件:
log.py
import logging
import os
from datetime import datetime
class userLog:
def __init__(self):
global logDirPath, resultPath, proDir
proDir = os.path.split(os.path.dirname(__file__))[0] #获取当前文件的目录的上级目录
#log日志目录,若不存在就新建
resultPath = os.path.join(proDir, "result") #得到文件的目录的同级result目录
if not os.path.exists(resultPath):
os.mkdir(resultPath)
logDirPath = os.path.join(resultPath, str(datetime.now().strftime("%Y-%m-%d")))
if not os.path.exists(logDirPath):
os.mkdir(logDirPath)
self.logger = logging.getLogger()
#Logger.setLevel()指定logger将会处理的最低的安全等级日志信息:DEBUG、INFO、WARNING、ERROR、CRITICAL
self.logger.setLevel(logging.INFO)
# self.logger.setLevel(logging.DEBUG)
# logging.FileHandler(filepath[,mode])用于向一个文件输出日志信息,mode默认'a'
self.handler = logging.FileHandler(os.path.join(logDirPath, str(datetime.now().strftime("%H%M%S"))+"out.log"), 'a', encoding='utf-8')
# Formatter对象设置日志信息最后的规则、结构和内容
formatter = logging.Formatter('%(asctime)s %(filename)s %(pathname)s %(levelno)s: [%(levelname)s] ---> %(message)s')
self.handler.setFormatter(formatter)
self.logger.addHandler(self.handler)
# self.logger.debug(u"====日志打印===")
def get_log(self):
return self.logger
def close_handle(self):
# Logger.addHandler()和Logger.removeHandler()从记录器对象中添加和删除处理程序对象
self.logger.removeHandler(self.handler)
self.handler.close()
if __name__ == "__main__":
user_logger = userLog()
log = user_logger.get_log()
log.debug('debug级别,最低级别,详细信息,一般只在调试问题时使用')
log.info('info级别,正常输出信息,一般用来打印一些正常的操作')
log.warning('waring级别,一般用来打印警信息')
log.error('error级别,一般用来打印一些错误信息')
log.critical('critical 级别,一般用来打印一些致命的错误信息,等级最高')
user_logger.close_handle()