# 记录用户行为或者报错信息 import logging # 配置错误日志有两种方法 # 方法1:通过basicconfig # 配置简单。但是能做的事情少,解决不了中文乱码,不能同时输出到屏幕和文件 # logging.debug('debug message') # logging.info('info message') # logging.warning('warning message') # logging.error('error message') # logging.critical('critical message') # 设置日志文件 # LogFile = 'config' # DateFmt = '%Y-%m-%d %H:%M:%S %p' # LogFmt = '%(asctime)s - %(lineno)d - %(name)s - %(levelname)s - %(module)s: %(message)s' # # logging.basicConfig( # # filename=LogFile, # datefmt=DateFmt, # level=logging.ERROR, # format=LogFmt # ) # try: # int(input('输入数字:')) # except ValueError: # logging.error('输入的值错误') # 第二种logger对象配置 logger = logging.getLogger() # 创建一个logger对象 file_log = logging.FileHandler('test.log',mode='a',encoding='utf-8') # 创建一个写入错误日志 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')# 创建一个格式化对象 file_log.setFormatter(formatter) # 文件操作符和格式化对象关联 logger.addHandler(file_log) # logger对象和文件操作符关联 scren_log = logging.StreamHandler() # 创建一个屏幕显示日志 formatter2 = logging.FileHandler('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # 屏幕显示日志的格式化对象 scren_log.setFormatter(formatter2) # 屏幕日志关联格式化对象 logger.addHandler(scren_log) # 屏幕显示日志关联logger对象 # 拿个logger对象去实现功能 try: int(input('请输入数字:')) except ValueError: logger.error('你输入的不是数字')