第一种方法比较简单:
在Model下面创建LogConfig.py文件
import logging
# 配置日志信息
# 日志保存位置
log_file = "F:/Git/WebdriverTest/mylog.log"
logging.basicConfig(level=logging.DEBUG,
format='[%(levelname)s][%(funcName)s][%(asctime)s]%(message)s',
datefmt='%m-%d %H:%M',
filename='log_file',
filemode='w')
# 定义一个Handler打印INFO及以上级别的日志到sys.stderr
console = logging.StreamHandler()
console.setLevel(logging.INFO)
# 设置日志打印格式
formatter = logging.Formatter('[%(levelname)s][%(funcName)s][%(asctime)s]%(message)s')
console.setFormatter(formatter)
# 将定义好的console日志handler添加到root logger
logging.getLogger('').addHandler(console)
引用日志模块时只需要导入LogConfig.py文件就可以了,导入时提示ImportError: No module named LogConfig
解决办法类似于http://10250691.blog.51cto.com/10240691/1868845
打印日志:
LogConfig.logging.info(u'这是日志……')
第二种方法:
import logging.handlers
class FinalLogger():
logger = None
levels = {"n" : logging.NOTSET,
"d" : logging.DEBUG,
"i" : logging.INFO,
"w" : logging.WARN,
"e" : logging.ERROR,
"c" : logging.CRITICAL}
log_level = "d"
log_file = "final_logger.log"
log_max_byte = 10 * 1024 * 1024;
log_backup_count = 5
@staticmethod
def getLogger():
if FinalLogger.logger is not None:
return FinalLogger.logger
log_file = "./FinalLogger.log_file"
logging.basicConfig(filename = log_file,level = logging.DEBUG)
FinalLogger.logger = logging.Logger("oggingmodule.FinalLogger")
log_handler = logging.handlers.RotatingFileHandler(filename = FinalLogger.log_file,\
maxBytes = FinalLogger.log_max_byte,\
backupCount = FinalLogger.log_backup_count)
log_fmt = logging.Formatter("[%(levelname)s][%(funcName)s][%(asctime)s]%(message)s")
log_handler.setFormatter(log_fmt)
FinalLogger.logger.addHandler(log_handler)
FinalLogger.logger.setLevel(FinalLogger.levels.get(FinalLogger.log_level))
return FinalLogger.logger
# 把日志输出到控制台
console = logging.StreamHandler()
console.setLevel(logging.INFO)
FinalLogger.getLogger().addHandler(console)
logger = FinalLogger.getLogger()
第二种方法效果和第一种方法效果一样的,暂时还没发现有什么优点,还是第一种方法简单
转载于:https://blog.51cto.com/10250691/1868960