python 日志模块 [root@centos7 ~]# cat a.py #! /usr/bin/python3 #filename:日志文件名 #format: 时间-名称-级别-模块:错误信息 #datefmt:时间格式 import logging # 引入logging模块 logging.basicConfig(filename='acc1.log', format='%(asctime)s - %(name)s: %(levelname)s - %(module)s: %(message)s', datefmt='%F-%m-%d %H:%M:%S', level=0 # 当前配置表示0以上的分数会写入文件 ) logging.debug('This is a debug message.') # debug的level 10 logging.info('This is an info message.') # info的level 20 logging.warning('This is a warning message.') # warning的level 30 logging.error('This is an error message.') # error的level 40 logging.critical('This is a critical message.') # critical的level 50 logging.log(2,"我是自定义") [root@centos7 ~]#
日志分文件记录
[root@centos7 ~]# cat b.py #! /usr/bin/python3 #如果系统中需要把日志文件分开,比如一个大系统,有2个系统,A系统,B系统需要分开记录日志,那怎么办呢? #basicConfig 是搞不定的,我们需要借助文件助手(FileHandler),来帮我们完成日志的分开记录 import logging # 创建一个操作日志的对象logger (依赖FileHandler) file_handler = logging.FileHandler('l1.log','a',encoding='utf-8') #类似 f = open() a:追加 file_handler.setFormatter(logging.Formatter(fmt='%(asctime)s - %(name)s: %(levelname)s - %(module)s: %(message)s')) logger1 =logging.Logger('财务系统',level=40) #创建日志对象 logger1.addHandler(file_handler) #给日志对象设置文件信息 # 再创建一个操作日志的对象logger(依赖FileHandler) file_handler2 = logging.FileHandler('l2.log','a',encoding='utf-8') file_handler2.setFormatter(logging.Formatter(fmt='%(asctime)s - %(name)s: %(levelname)s - %(module)s: %(message)s')) logger2 =logging.Logger('会计系统',level=logging.ERROR) logger2.addHandler(file_handler2) #项目1:财务系统出错了 logger1.error('财务系统炸了,程序员出来工作了') #项目2:会计系统出错了 logger2.error('会计系统炸了,程序员出来工作了') [root@centos7 ~]#
异常处理
[root@centos7 ~]# cat c.py #! /usr/bin/python3 import traceback try: print(1/0) except: print('出错了') print(traceback.format_exc()) #错误信息就能看到了 [root@centos7 ~]#
日志记录异常
[root@centos7 ~]# cat d.py #! /usr/bin/python3 import logging import traceback #准备好记录日志的logging logging.basicConfig(filename='acc2.log', format='%(asctime)s - %(name)s: %(levelname)s - %(module)s: %(message)s', datefmt='%F-%m-%d %H:%M:%S', level=0 # 当前配置表示0以上的分数会写入文件 ) try: print(1/0) except: print('出错了') logging.error(traceback.format_exc()) [root@centos7 ~]#