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')

浙公网安备 33010602011771号