logging模块配置笔记

mac2022-06-30  17

logging模块配置笔记

log文件的路径

#判断在当前的目录下是否有一个logs文件夹。没有则创建 log_dir = os.path.dirname(os.path.dirname(__file__))+'/logs' if not os.path.exists(log_dir): os.mkdir(log_dir)

设定log文件名

#在上述的文件夹生成web.log文件 today=datetime.datetime.now().strftime("%Y%m%d") log_path = os.path.join(log_dir, f'test_{today}.log')

dictConfig通用参数配置

version版本号
'version': 1.0#固定值1.0
formatters日志格式设置
'format': formatter的格式,字符串,比如'%(levelname)s-%(message)s' 'datefmt': 日期的输出格式,字符串,比如'%Y-%m-%d %H:%M:%S'
然后看下面一个配置
'formatters': { 'detail': {#detail自定义一个格式名字 'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s', 'datefmt': "%Y-%m-%d %H:%M:%S" }, 'simple': {#同detail自定义一个格式名字,这里定义另一种格式 'format': '%(name)s - %(levelname)s - %(message)s', }, }
handlers日志格式设置
然后看下面一个配置
'handlers': { 'console': {#console是自定义的handlers名字 'class': 'logging.StreamHandler',#构造handler使用的类,字符串,必须使用全路径 'level': 'INFO',#级别 'formatter': 'detail'#上面的detail格式 }, 'file': {#file是自定义的handlers名字 'class': 'logging.handlers.RotatingFileHandler', 'maxBytes': 1024 * 1024 * 5,#每个日志文件最大5M,超过之后重新命名一个文件 'backupCount': 10,#最多备份10个日志文件, 'filename': log_path,#上面定义的log文件名 'level': 'INFO', 'formatter': 'detail', 'encoding': 'utf-8', },
loggers

必须指定一个级别和handlers列表

'loggers': { 'crawler': {#crawler是自定义的日志对象名字 'handlers': ['console', 'file'],#输出方式 'level': 'DEBUG',#级别 }, 'parser': { 'handlers': ['file'],#输出方式 'level': 'INFO',#级别 } }

以上日志配置综合

log_config = { 'version': 1.0, 'formatters': { 'detail': { 'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s', 'datefmt': "%Y-%m-%d %H:%M:%S" #如果不加这个会显示到毫秒。 }, 'simple': { 'format': '%(name)s - %(levelname)s - %(message)s', }, }, 'handlers': { 'console': { 'class': 'logging.StreamHandler',#日志打印到屏幕显示的类。 'level': 'INFO', 'formatter': 'detail' }, 'file': { 'class': 'logging.handlers.RotatingFileHandler',#日志打印到文件的类。 'maxBytes': 1024 * 1024 * 5, #单个文件最大内存 'backupCount': 10, #备份的文件个数 'filename': log_path, #日志文件名 'level': 'INFO',# 日志等级 'formatter': 'detail', #调用上面的哪个格式 'encoding': 'utf-8', #编码 }, }, 'loggers': { 'crawler': { 'handlers': ['console', 'file'],#打印屏幕和写入文件 'level': 'DEBUG',#只显示错误的log }, 'parser': { 'handlers': ['file'], 'level': 'INFO', }, 'other': { 'handlers': ['console', 'file'], 'level': 'INFO', }, 'storage': { 'handlers': ['file'], 'level': 'INFO', } } }

创建日志对象使用

1.通过调用dictConfig(config)方法进行配置,config对象为一个dict

log_conf.dictConfig(log_config)

2.生成不同的日志对象

crawler = logging.getLogger('crawler') parser = logging.getLogger('parser')

3.打印不同级别的log

常用的两种

crawler.error(错误信息) crawler.info(字符串)

转载于:https://www.cnblogs.com/c-x-a/p/9453101.html

相关资源:Python logging模块学习笔记
最新回复(0)