#!/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("----测试结束----")
posted on 2018-12-05 11:58  新美好时代  阅读(161)  评论(0编辑  收藏  举报