This repository was archived by the owner on Dec 21, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 229
extra can not hava keys like name #181
Copy link
Copy link
Open
Description
import logging
from pythonjsonlogger import jsonlogger
import traceback
logger = logging.getLogger("myname")
logger.setLevel(logging.INFO)
logHandler = logging.StreamHandler()
formatter = jsonlogger.JsonFormatter()
logHandler.setFormatter(formatter)
logger.addHandler(logHandler)
try:
logger.info("test", extra={"name": "my_test_name"})
except Exception as e:
print(traceback.format_exc())
print(e)
above code throws a exception which tell us that name has already been existed in LogRecord
output
Traceback (most recent call last):
File "json_logger.py", line 14, in <module>
logger.info("test", extra={"name": "my_test_name"})
File "/data/zhouzhao.zyl/repos/meta_service/venv/lib/python3.7/logging/__init__.py", line 1383, in info
self._log(INFO, msg, args, **kwargs)
File "/data/zhouzhao.zyl/repos/meta_service/venv/lib/python3.7/logging/__init__.py", line 1518, in _log
exc_info, func, extra, sinfo)
File "/data/zhouzhao.zyl/repos/meta_service/venv/lib/python3.7/logging/__init__.py", line 1492, in makeRecord
raise KeyError("Attempt to overwrite %r in LogRecord" % key)
KeyError: "Attempt to overwrite 'name' in LogRecord"
Reading the related source code of logging, the name key has been set as myname as the logger name.
so I am seriously curious about that if the way of using extra in my code is correct?
python json logger version
python-json-logger 2.0.7
l
Metadata
Metadata
Assignees
Labels
No labels