dockerflow.logging.JsonLogFormatter is weird about %s style logging
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 50/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 停滞
- 技术栈
- python
调研方向
The formatter is dockerflow.logging.JsonLogFormatter, so start in the dockerflow/logging.py module and find where it builds the msg field from the log record. The bug appears when the %s argument is not a string, such as a dict, so check whether the formatter uses the raw record.msg instead of the formatted message. Done means logger.info("Hi %s", {'name': 'Peter'}) puts the rendered text in Fields.msg.
由索引模型根据 Issue 内容生成。
描述
I have this config:
# Logging
LOGGING_USE_JSON = values.BooleanValue(True)
LOGGING_DEFAULT_LEVEL = values.Value("INFO")
@property
def LOGGING(self):
return {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"json": {
"()": "dockerflow.logging.JsonLogFormatter",
"logger_name": "buildhub",
},
"verbose": {"format": "%(levelname)s %(asctime)s %(name)s %(message)s"},
},
"handlers": {
"console": {
"level": self.LOGGING_DEFAULT_LEVEL,
"class": "logging.StreamHandler",
"formatter": ("json" if self.LOGGING_USE_JSON else "verbose"),
},
"sentry": {
"level": "ERROR",
"class": (
"raven.contrib.django.raven_compat.handlers" ".SentryHandler"
),
},
"null": {"class": "logging.NullHandler"},
},
"root": {"level": "INFO", "handlers": ["sentry", "console"]},
...
When I do:
In [1]: import logging
In [2]: logger = logging.getLogger("myproject")
In [3]: logger.info("Hi!")
{"Timestamp": 1541787363833421056, "Type": "myproject", "Logger": "buildhub", "Hostname": "MacBook-Pro-131.local", "EnvVersion": "2.0", "Severity": 6, "Pid": 68488, "Fields": {"msg": "Hi!"}}
In [4]: logger.info("Hi %s", "peter")
{"Timestamp": 1541787379742094080, "Type": "myproject", "Logger": "buildhub", "Hostname": "MacBook-Pro-131.local", "EnvVersion": "2.0", "Severity": 6, "Pid": 68488, "Fields": {"msg": "Hi peter"}}
In [5]: logger.info("Hi %s", {'name': 'Peter'})
{"Timestamp": 1541787416647823104, "Type": "myproject", "Logger": "buildhub", "Hostname": "MacBook-Pro-131.local", "EnvVersion": "2.0", "Severity": 6, "Pid": 68488, "Fields": {}}
Notice that when the param to logger.debug(template, THIS) isn't a string the final "msg" becomes empty ("Fields": {}).
- 主要语言
- Python
- 星标
- 41
- 派生
- 21
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
mozilla-services/python-dockerflow 的其他 Issue
-
难度 3/5 半天 新手友好度 15/100
mozilla-services/python-dockerflow#119 · 1 条评论 ·
-
难度 2/5 1 小时以内 新手友好度 15/100
mozilla-services/python-dockerflow#117 · 1 条评论 ·
-
难度 5/5 一周以上 新手友好度 15/100
mozilla-services/python-dockerflow#116 · 1 条评论 ·
-
难度 3/5 半天 新手友好度 62/100
-
难度 5/5 一周以上 新手友好度 12/100
查看 mozilla-services/python-dockerflow 的全部 Issue
相似的 Issue
-
难度 1/5 1 小时以内 新手友好度 72/100
-
[Bug]: Importing weave changes the process-wide locale可能已有人在做 @himanshu748 今天认领。 未关闭bug
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
-
bug
难度 2/5 1-3 小时 新手友好度 74/100
-
UX
难度 1/5 1 小时以内 新手友好度 72/100
mediajunkie/piper-morgan-product#2008 · 2 条评论 ·