版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
1、向log.txt文件中写入日志
# coding:utf-8
import logging
import traceback
# basicConfig函数的功能是:为日志系统做基础的配置
# print(logging.__dir__()) # 打印模块中的方法
'''
asctime:时间
name:用户
levelname:级别
module:运行的模块
message:相关信息
'''
logger = logging.basicConfig(
filename='log.txt',
format='%(asctime)s - %(name)s - %(levelname)s - %(module)s:%(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
level=30) # level>=30才会被写入日志文件,默认级别是30
# 级别大于basicConfig函数中设置的级别才可以被写入日志文件,内部都自带级别
# CRITICAL = 50
# FATAL = CRITICAL
# ERROR = 40
# WARNING = 30
# WARN = WARNING
# INFO = 20
# DEBUG = 10
# NOTSET = 0
# logging.debug('debug')
# logging.info('info')
# logging.warning('warning')
# logging.error('error')
# logging.critical('critical')
# logging.fatal('error') # fatal函数等价于critical函数
# logging.log(10, 'debug') # debug
# logging.log(20, 'info') # info
# logging.log(30, 'warning') # warning
# logging.log(40, 'error') # error
# logging.log(50, 'critical') # critical/fatal
def func():
a = 10
try:
b = a / 0
except Exception as e:
# print(e) # print函数内部调用str方法将对象转换成字符串打印出来
'''
只是将e的信息写入日志,这是不够的
'''
# logging.error(str(e))
'''
需要更加具体到错误的代码行数
'''
msg = traceback.format_exc()
logging.error(msg)
'''
log.txt文件:
2019-07-03 23:32:01 - root - ERROR - logTest:Traceback (most recent call last):
File "E:/pycharmProjects/day15/logTest.py", line 48, in func
b = a / 0
ZeroDivisionError: division by zero
'''
func()
2、补充
print(对象):对象调用_ _ str _ _方法,返回一个字符串:
class Foo:
def f1(self):
pass
def __str__(self):
return '__str__' # 返回值必须是<class 'str'>类型
f = Foo()
print(f)
'''
__str__
'''