logging

logging:日志

默认是从warning开始记录

import logging
logging.debug('我是调试')
logging.info('我是信息')
logging.warning('我是警告')
logging.error('我是错误')
logging.critical('我是危险')

"""
灵活配置日志级别,日志格式,输出位置
basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有:
filename:用指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中。
filemode: 文件打开方式,在指定了filename时使用这个参数,默认值为“a"还可指定为"w". . format: 指定handler使用的日志显示格式。
datefmt:指定日期时间格式。
level: 设置记录日志的级别
stream:用指定的stream创建StreamHandler. 可以指定输出到
sys.stderr,sys.stdout或者文件(f=open('test.log') ,'w')),默认为sys.stderr.若同时列出了filename和stream两个参数,则stream参数会被忽略。
"""

import logging
logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S',
    filename='test.log',
    filemode='w'
)
dic = {"key": 123}
logging.debug(dic)

num = 100
logging.info(f"用户当前余额:{num-50}")

try:
    num = int(input("请输入数字:"))
except Exception as e:
    logging.warning("int将字符串转换报错了")

logging.error('我是错误')

logging.critical('我是危险')
import logging
logger = logging.getLogger()  # 初始化,创建一个logger

# 创建一个handler,用于写入日志文件

fh = logging.FileHandler('test.log', mode='a', encoding='utf-8')  # 文件

# 再创建一个handler,用于输出到控制台

ch = logging.StreamHandler()  # 屏幕

# 将屏幕和文件都是用以下格式

formatter = logging.Formatter('%(asctime)s - %(name)s - %(filename)s - [line:%(lineno)d - %(levelname)s - %(message)s')

# 设置记录级别

fh.setLevel(logging.DEBUG)

# 使用自定义的格式化内容

fh.setFormatter(formatter)
ch.setFormatter(formatter)

# logger对象可以添加多个fh和ch对象

logger.addHandler(fh)
logger.addHandler(ch)

logger.debug('logger debug message')
logger.info('logger info message')
logger.warning('logger warning message')
logger.error('logger error message')
logger.critical('logger critical message')
posted @ 2020-11-04 08:32  Ylinn  阅读(189)  评论(0)    收藏  举报