Python中的日志模块(logging) --Python3

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (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__
'''

猜你喜欢

转载自blog.csdn.net/Thanlon/article/details/94592232
今日推荐