本文共 2911 字,大约阅读时间需要 9 分钟。
#判断在当前的目录下是否有一个logs文件夹。没有则创建 log_dir = os.path.dirname(os.path.dirname(__file__))+'/logs' if not os.path.exists(log_dir): os.mkdir(log_dir)
#在上述的文件夹生成web.log文件 log_path = os.path.join(log_dir, 'web.log')
'version': 1.0#固定值1.0
'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': { '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', },
必须指定一个级别和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', }, 'parser': { 'handlers': ['file'], 'level': 'INFO', } } }
log_conf.dictConfig(log_config)
crawler = logging.getLogger('crawler') parser = logging.getLogger('parser')
常用的两种
crawler.error(错误信息) crawler.info(字符串)
转载地址:http://vrhbm.baihongyu.com/