Skip to content

Update dependency python-json-logger to v4#25

Open
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/python-json-logger-4.x
Open

Update dependency python-json-logger to v4#25
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/python-json-logger-4.x

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Mar 5, 2026

This PR contains the following updates:

Package Change Age Confidence
python-json-logger ^2.0.4^4.0.0 age confidence

Release Notes

nhairs/python-json-logger (python-json-logger)

v4.0.0: 4.0.0

Compare Source

Added
  • Support DictConfigurator prefixes for rename_fields and static_fields. #​45
    • Allows using values like ext://sys.stderr in fileConfig/dictConfig value fields.
  • Support comma seperated lists for Formatter fmt (style=",") e.g. "asctime,message,levelname" #​15
    • Note that this style is specific to python-json-logger and thus care should be taken not to pass this format to other logging Formatter implementations.
  • Supports sequences of strings (e.g. lists and tuples) of field names for Formatter fmt. #​16
Changed
  • Rename pythonjsonlogger.core.LogRecord and log_record arguments to avoid confusion / overlapping with logging.LogRecord. #​38
    • Affects arguments to pythonjsonlogger.core.BaseJsonFormatter (and any child classes).
      • serialize_log_record
      • add_fields
      • jsonify_log_record
      • process_log_record
    • Note: functions referring to log_record have not had their function name changed.
Removed
  • Remove support for providing strings instead of objects when instantiating formatters. Instead use the DictConfigurator ext:// prefix format when using fileConfig/dictConfig. #​47
    • Affects pythonjsonlogger.json.JsonFormatter: json_default, json_encoder, json_serializer.
    • Affects pythonjsonlogger.orjson.OrjsonFormatter: json_default.
    • Affects pythonjsonlogger.msgspec.MsgspecFormatter: json_default.

Thanks @​rubensa

v3.3.0: 3.3.0

Compare Source

Added
  • exc_info_as_array and stack_info_as_array options are added to pythonjsonlogger.core.BaseJsonFormatter allowing both to be encoded as list of lines instead of a single multi-line string. #​35
Security
  • Remove msgspec-python313-pre from dev dependencies preventing potential RCE. Details: GHSA-wmxh-pxcx-9w24

Thanks @​1hakusai1 and @​omnigodz

v3.2.1: 3.2.1

Compare Source

Fixed
  • Import error on import pythonjsonlogger.jsonlogger #​29

v3.2.0: 3.2.0

Compare Source

Changed
  • pythonjsonlogger.[ORJSON,MSGSPEC]_AVAILABLE no longer imports the respective package when determining availability.
  • pythonjsonlogger.[orjson,msgspec] now throws a pythonjsonlogger.exception.MissingPackageError when required libraries are not available. These contain more information about what is missing whilst still being an ImportError.
  • defaults parameter is no longer ignored and now conforms to the standard library. Setting a defaults dictionary will add the specified keys if the those keys do not exist in a record or weren't passed by the extra parameter when logging a message.
  • typing_extensions is only installed on Python version < 3.10.
  • Support Python 3.13
    • msgspec has only been tested against pre-release versions.

Thanks @​cjwatson and @​bharel

v3.1.0

Compare Source

This splits common funcitonality out to allow supporting other JSON encoders. Although this is a large refactor, backwards compatibility has been maintained.

Added
  • pythonjsonlogger.core - more details below.
  • pythonjsonlogger.defaults module that provides many functions for handling unsupported types.
  • Orjson encoder support via pythonjsonlogger.orjson.OrjsonFormatter with the following additions:
    • bytes are URL safe base64 encoded.
    • Exceptions are "pretty printed" using the exception name and message e.g. "ValueError: bad value passed"
    • Enum values use their value, Enum classes now return all values as a list.
    • Tracebacks are supported
    • Classes (aka types) are support
    • Will fallback on __str__ if available, else __repr__ if available, else will use __could_not_encode__
  • MsgSpec encoder support via pythonjsonlogger.msgspec.MsgspecFormatter with the following additions:
    • Exceptions are "pretty printed" using the exception name and message e.g. "ValueError: bad value passed"
    • Enum classes now return all values as a list.
    • Tracebacks are supported
    • Classes (aka types) are support
    • Will fallback on __str__ if available, else __repr__ if available, else will use __could_not_encode__
    • Note: msgspec only supprts enum values of type int or str jcrist/msgspec#680
Changed
  • pythonjsonlogger.jsonlogger has been moved to pythonjsonlogger.json with core functionality moved to pythonjsonlogger.core.
  • pythonjsonlogger.core.BaseJsonFormatter properly supports all logging.Formatter arguments:
    • fmt is unchanged.
    • datefmt is unchanged.
    • style can now support non-standard arguments by setting validate to False
    • validate allows non-standard style arguments or prevents calling validate on standard style arguments.
    • default is ignored.
  • pythonjsonlogger.json.JsonFormatter default encodings changed:
    • bytes are URL safe base64 encoded.
    • Exception formatting detected using BaseException instead of Exception. Now "pretty prints" the exception using the exception name and message e.g. "ValueError: bad value passed"
    • Dataclasses are now supported
    • Enum values now use their value, Enum classes now return all values as a list.
    • Will fallback on __str__ if available, else __repr__ if available, else will use __could_not_encode__
  • Renaming fields now preserves order (#​7) and ignores missing fields (#​6).
  • Documentation
    • Generated documentation using mkdocs is stored in docs/
    • Documentation within README.md has been moved to docs/index.md and docs/qucikstart.md.
    • CHANGELOG.md has been moved to docs/change-log.md
    • SECURITY.md has been moved and replaced with a symbolic link to docs/security.md.
Deprecated
  • pythonjsonlogger.jsonlogger is now pythonjsonlogger.json
  • pythonjsonlogger.jsonlogger.RESERVED_ATTRS is now pythonjsonlogger.core.RESERVED_ATTRS.
  • pythonjsonlogger.jsonlogger.merge_record_extra is now pythonjsonlogger.core.merge_record_extra.
Removed
  • Python 3.7 support dropped
  • pythonjsonlogger.jsonlogger.JsonFormatter._str_to_fn replaced with pythonjsonlogger.core.str_to_object.

v3.0.1

Compare Source

Fixes

v3.0.0

Compare Source

Note: using new major version to separate changes from this fork and the original (upstream). See #​1 for details.

Changes
  • Update supported Python versions - @​nhairs
    • Drop 3.6
    • The following versions are supported and tested:
      • CPython 3.7-3.12 (ubuntu, windows, mac)
      • PyPy 3.7-3.10 (ubuntu, wundows, mac)
    • RESERVED_ATTRS is now a list and version dependent
  • Fix JsonFormatter.__init__ return type (None) - @​nhairs
  • Moved to pyproject.toml - @​nhairs
  • Update linting and testing - @​nhairs
    • Split lint and test steps in GHA
    • Use validate-pyproject, black, pylint, mypy

New Contributors

Full Changelog: nhairs/python-json-logger@v2.0.7...v3.0.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants