首先,我使用logging.config.dictConfig()通过配置json文件配置日志记录,并使用以前使用过的python.Try .I,并且运行良好。但这一次我删除了一点,也删除了一些它不工作的方式。我的配置文件将如下所示:
{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"simple": {
"format": "%(name)-6s | %(levelname)-8s | %(message)s"
},
"info_format": {
"format": "%(name)-6s | %(levelname)-6s | %(message)s"
},
"error_format": {
"format": "%(filename)-8s | %(module)-12s | %(funcName)s | %(lineno)d : %(message)s"
},
"debug_format": {
"format": "%(filename)-8s | %(module)-12s | %(funcName)s | %(lineno)d : %(message)s"
}
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"level": "DEBUG",
"formatter": "simple",
"stream": "ext://sys.stdout"
},
"info_handler": {
"level": "INFO",
"formatter": "info_format",
"encoding": "utf8",
"stream": "ext://sys.stdout"
},
"error_handler": {
"level": "ERROR",
"formatter": "error_format",
"encoding": "utf8",
"stream": "ext://sys.stderr"
}
},
"loggers": {
"info": {
"level": "INFO",
"handlers": ["console"],
"propagate": "no"
},
"error": {
"level": "ERROR",
"handlers": ["console"],
"propagate": "no"
},
"tornado.access": {
"level": "INFO",
"handlers": ["console"],
"propagate": "no"
},
"tornado.general": {
"level": "INFO",
"handlers": ["console"],
"propagate": "no"
},
"tornado.application": {
"level": "ERROR",
"handlers": ["console"],
"propagate": "no"
}
}
}下面是我如何配置日志记录:
configParser = ConfigParser.ConfigParser()
__ProjectPath = os.getcwd()
config_path = __ProjectPath + "/configs/logconfig.json"
with open(config_path, 'rt') as f:
configs = json.loads(f.read())
logging.config.dictConfig(configs)这是错误消息:
Traceback (most recent call last):
File "/home/jonah/code/leancloud-demo/wsgi.py", line 13, in <module>
from app import app
File "/home/jonah/code/leancloud-demo/app.py", line 14, in <module>
import log
File "/home/jonah/code/leancloud-demo/log.py", line 51, in <module>
logging.config.dictConfig(configs)
File "/usr/lib/python2.7/logging/config.py", line 794, in dictConfig
dictConfigClass(config).configure()
File "/usr/lib/python2.7/logging/config.py", line 576, in configure
'%r: %s' % (name, e))
ValueError: Unable to configure handler u'error_handler': 'NoneType' object has no attribute 'split'
Process finished with exit code 1我有一段时间的谷歌,只是不能为我的糟糕的英语answer.Sorry。
发布于 2015-09-17 09:26:50
读取https://docs.python.org/2/library/logging.config.html#dictionary-schema-details
// class (mandatory). This is the fully qualified name of the handler class
"info_handler": {
"class": "logging.StreamHandler",
"level": "INFO",
"formatter": "info_format",
"stream": "ext://sys.stdout"
},
"error_handler": {
"class": "logging.StreamHandler",
"level": "ERROR",
"formatter": "error_format",
"stream": "ext://sys.stderr"
}https://stackoverflow.com/questions/32626100
复制相似问题