日志模块
非常简单的限制线程安全的日志记录模块
就是一个写文件的模块
import logging logging.basicConfig(filename='log_ss.log',format='%(asctime)s-%(name)s-%(levelname)s -%(module)s:%(message)s',datefmt='%Y-%m-%d %H:%M:%S %p',level=10)#日志文件路径 ; 操作时间 用户 操作类型 操作对象 内容;时间格式;level=10 表示logging 中编号大于等于10的方法才记录执行 10也可以用固定的变量代替logging.ERROR就代表40 """ CRITICAL = 50 FATAL = CRITICAL ERROR = 40 WARNING = 30 WARN = WARNING INFO = 20 DEBUG = 10 NOTSET = 0 _levelToName = { CRITICAL: 'CRITICAL', ERROR: 'ERROR', WARNING: 'WARNING', INFO: 'INFO', DEBUG: 'DEBUG', NOTSET: 'NOTSET', } """ #根据logging.ERROR 我们可以知道 各个方法的编号 logging.error('error') logging.debug('debug') logging.warn('warning') logging.info('info') logging.critical('catial') 输出————————————————————————————————————————生成一个log_ss.log文件——————————————————————————————————————————————————————————————————————
2018-05-08 12:56:27 PM-root-DEBUG -testloging:debug 2018-05-08 12:59:38 PM-root-ERROR -testloging:debug 2018-05-08 13:06:22 PM-root-ERROR -testloging:error 2018-05-08 13:06:22 PM-root-DEBUG -testloging:debug 2018-05-08 13:06:22 PM-root-WARNING -testloging:warning 2018-05-08 13:06:22 PM-root-INFO -testloging:info 2018-05-08 13:06:22 PM-root-CRITICAL -testloging:catial
******************************************************************************************************************************************* 其实logging.debug error info等方法执行的都是logging.log方法
import logging logging.basicConfig(filename='log_ss.log',format='%(asctime)s-%(name)s-%(levelname)s -%(module)s:%(message)s',datefmt='%Y-%m-%d %H:%M:%S %p',level=10)#日志文件路径 ; 操作时间 用户 操作类型 操作对象 内容;时间格式;level=10 表示logging 中编号大于等于10的方法才记录执行 logging.log(10,'dayu10') 输出————————————————————————————————————————————————————————————————————————————————————#log方法中的编号一定要大于等于level的值 2018-05-08 13:08:45 PM-root-DEBUG -testloging:dayu10
******************************************************************************************************************************************* logging模块的多个文件的读写 用到了logging模块的内置的一个方法,主要是两步走1、指定文件 2、通过比较判断是否写文件
import logging # logging.basicConfig(filename='log_ss.log',format='%(asctime)s-%(name)s-%(levelname)s -%(module)s:%(message)s',datefmt='%Y-%m-%d %H:%M:%S %p',level=10)#日志文件路径 ; 操作时间 用户 操作类型 操作对象 内容;时间格式;level=10 表示logging 中编号大于等于10的方法才记录执行 # logging.log(10,'dayu10') #写多个文件 file_1_1=logging.FileHandler('log1_11.log','a') fmt=logging.Formatter(fmt='%(asctime)s-%(name)s-%(levelname)s -%(module)s:%(message)s') file_1_1.setFormatter(fmt) file_1_2=logging.FileHandler('log1_12.log','a') fmt=logging.Formatter() file_1_2.setFormatter(fmt) logger1=logging.Logger('s1',level=10)#s1是一个标志,表示的是这个判断标准
logger1.addHandler(file_1_1) logger1.addHandler(file_1_2) logger1.critical('23444346634465434363') 输出结果—————————————————————————————————————————————————————————————— log1_11.log的内容 2018-05-08 13:54:17,478-s1-CRITICAL -testloging:23444346634465434363 log1_12.log的内容 23444346634465434363