Formatting exception handling and fill_missing_fmt_key error
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 45/100
Research direction
Start at fluent/handler.py around the linked line 151 and reproduce the Python 3.8+ formatting traceback. Trace how ValueError is handled for each style and how FluentRecordFormatter's fill_missing_fmt_key=True path responds; done means both formatting error handling and missing-key filling behave as intended.
Written by the indexing model from the issue text.
Description
There is ValueError is reraised instead of KeyError in the format method of each style class since python3.8:
https://github.com/python/cpython/issues/79025#issuecomment-1093800953
So formatting error handling and fill_missing_fmt_key=True arg of FluentRecordFormatter does not work correctly.
Traceback (most recent call last):
File "/usr/lib/python3.10/logging/__init__.py", line 440, in format
return self._format(record)
File "/usr/lib/python3.10/logging/__init__.py", line 458, in _format
return self._fmt.format(**values)
KeyError: 'kubernetes'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/nz/.local/lib/virtualenvs/platform10/lib/python3.10/site-packages/django/core/management/base.py", line 330, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/nz/.local/lib/virtualenvs/platform10/lib/python3.10/site-packages/django/core/management/commands/runserver.py", line 61, in execute
super().execute(*args, **options)
File "/home/nz/.local/lib/virtualenvs/platform10/lib/python3.10/site-packages/django/core/management/base.py", line 371, in execute
output = self.handle(*args, **options)
File "/home/nz/.local/lib/virtualenvs/platform10/lib/python3.10/site-packages/django/core/management/commands/runserver.py", line 96, in handle
self.run(**options)
File "/home/nz/.local/lib/virtualenvs/platform10/lib/python3.10/site-packages/django/core/management/commands/runserver.py", line 103, in run
autoreload.run_with_reloader(self.inner_run, **options)
File "/home/nz/.local/lib/virtualenvs/platform10/lib/python3.10/site-packages/django/utils/autoreload.py", line 617, in run_with_reloader
logger.info('Watching for file changes with %s', reloader.__class__.__name__)
File "/usr/lib/python3.10/logging/__init__.py", line 1477, in info
self._log(INFO, msg, args, **kwargs)
File "/usr/lib/python3.10/logging/__init__.py", line 1624, in _log
self.handle(record)
File "/usr/lib/python3.10/logging/__init__.py", line 1634, in handle
self.callHandlers(record)
File "/usr/lib/python3.10/logging/__init__.py", line 1696, in callHandlers
hdlr.handle(record)
File "/usr/lib/python3.10/logging/__init__.py", line 968, in handle
self.emit(record)
File "/home/nz/.local/lib/virtualenvs/platform10/lib/python3.10/site-packages/fluent/handler.py", line 232, in emit
data = self.format(record)
File "/usr/lib/python3.10/logging/__init__.py", line 943, in format
return fmt.format(record)
File "/home/nz/.local/lib/virtualenvs/platform10/lib/python3.10/site-packages/fluent/handler.py", line 97, in format
data = self._formatter(record)
File "/home/nz/.local/lib/virtualenvs/platform10/lib/python3.10/site-packages/fluent/handler.py", line 154, in _format_by_dict
raise exc
File "/home/nz/.local/lib/virtualenvs/platform10/lib/python3.10/site-packages/fluent/handler.py", line 148, in _format_by_dict
value = self.__style(value).format(record)
File "/usr/lib/python3.10/logging/__init__.py", line 442, in format
raise ValueError('Formatting field not found in record: %s' % e)
ValueError: Formatting field not found in record: 'kubernetes'
ValueError must be handled here
- Dominant language
- Python
- Stars
- 457
- Forks
- 138
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from fluent/fluent-logger-python
-
support of `asctime` Open
Difficulty 3/5 1-2 days Newbie friendliness 48/100
fluent/fluent-logger-python#210 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 25/100
fluent/fluent-logger-python#196 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 42/100
fluent/fluent-logger-python#195 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 45/100
fluent/fluent-logger-python#194 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 25/100
fluent/fluent-logger-python#193 · 3 comments ·
All issues in fluent/fluent-logger-python
Similar issues
-
triage/confirmed
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
agentscope-ai/agentscope#2775 ·
-
comp/desktop P3 type/bug
Difficulty 1/5 Under an hour Newbie friendliness 92/100
NousResearch/hermes-agent#118866 ·
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 90/100
apache/cloudstack#14222 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100