#!/usr/bin/env python
# -*- coding:UTF-8 -*-
import logging, time, os
# 这个是日志保存本地的路径
log_path = "D:\ideaSpace\autoProject\autotest\nicetime"
class Log:
def __init__(self):
# 文件的命名
self.logname = os.path.join(log_path,'%s.log'%time.strftime('%Y_%m_%d'))
self.logger = logging.getLogger()
# 日志输出格式
self.formatter = logging.Formatter('[%(asctime)s]- %(filename)s] - %(levelname)s: %(message)s')
def __console(self, level, message):
# 创建一个 FileHandler,用于写到本地
fh = logging.FileHandler(self.logname, 'a', encoding='utf-8')
fh.setLevel(self.level)
fh.setFormatter(self.formatter)
self.logger.addHandler(fh)
# 创建一个 StreamHandler,用于输出到控制台
# ch = logging.StreamHandler()
# ch.setLevel(self.level)
# ch.setFormatter(self.formatter)
# self.logger.addHandler(ch)
if level == 'info':
self.logger.info(message)
elif level == 'debug':
self.logger.debug(message)
elif level == 'warning':
self.logger.warning(message)
elif level == 'error':
self.logger.error(message)
# 这两行代码是为了避免日志输出重复问题
# self.logger.removeHandler(ch)
self.logger.removeHandler(fh)
# 关闭打开的文件
fh.close()
def debug(self, message):
self.level = logging.getLevelName(logging.DEBUG)
self.__console('debug', message)
def info(self, message):
self.level = logging.getLevelName(logging.INFO)
self.__console('info', message)
def warning(self, message):
self.level = logging.getLevelName(logging.WARNING)
self.__console('warning', message)
def error(self, message):
self.level = logging.getLevelName(logging.ERROR)
self.__console('error', message)
if __name__ == "__main__":
log = Log()
log.info("---测试开始----")
log.info("输入密码")
log.warning("----测试结束----")