8,python 日志和异常

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 ~]# 

  

 

上一篇:LeetCode---N皇后问题---(困难)


下一篇:[JS][兼容IE]通过ajax从后台获取数据并直接由JS下载