Python-json-logger

Latest version: v3.2.1

Safety actively analyzes 695678 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

3.2.1

[3.2.1](https://github.com/nhairs/python-json-logger/compare/v3.2.0...v3.2.1) - 2024-12-16

Fixed
- Import error on `import pythonjsonlogger.jsonlogger` [29](https://github.com/nhairs/python-json-logger/issues/29)

3.2.0

[3.2.0](https://github.com/nhairs/python-json-logger/compare/v3.1.0...v3.2.0) - 2024-12-11

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

3.1.0

[3.1.0](https://github.com/nhairs/python-json-logger/compare/v3.0.1...v3.1.0) - 2023-05-28

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/msgspec680](https://github.com/jcrist/msgspec/issues/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](https://github.com/nhairs/python-json-logger/issues/7)) and ignores missing fields ([#6](https://github.com/nhairs/python-json-logger/issues/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`.

3.1.0.rc3

[3.1.0.rc3](https://github.com/nhairs/python-json-logger/compare/v3.0.1...v3.1.0.rc3) - 2023-05-03

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

Added
- `.core` - more details below.
- `.defaults` module that provides many functions for handling unsupported types.
- Orjson encoder support via `.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 `.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/msgspec680](https://github.com/jcrist/msgspec/issues/680)

Changed
- `.jsonlogger` has been moved to `.json` with core functionality moved to `.core`.
- `.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.
- `.json.JsonEncoder` 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).

Deprecated
- `.jsonlogger` is now `.json`
- `.jsonlogger.RESERVED_ATTRS` is now `.core.RESERVED_ATTRS`.
- `.jsonlogger.merge_record_extra` is now `.core.merge_record_extra`.

Removed
- Python 3.7 support dropped
- `.jsonlogger.JsonFormatter._str_to_fn` replaced with `.core.str_to_object`.

3.1.0.rc2

[3.1.0.rc2](https://github.com/nhairs/python-json-logger/compare/v3.0.1...v3.1.0.rc2) - 2023-05-03

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

Added
- `.core` - more details below.
- `.defaults` module that provides many functions for handling unsupported types.
- Orjson encoder support via `.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 `.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/msgspec680](https://github.com/jcrist/msgspec/issues/680)

Changed
- `.jsonlogger` has been moved to `.json` with core functionality moved to `.core`.
- `.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.
- `.json.JsonEncoder` 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__`

Deprecated
- `.jsonlogger` is now `.json`
- `.jsonlogger.RESERVED_ATTRS` is now `.core.RESERVED_ATTRS`.
- `.jsonlogger.merge_record_extra` is now `.core.merge_record_extra`.

Removed
- Python 3.7 support dropped
- `.jsonlogger.JsonFormatter._str_to_fn` replaced with `.core.str_to_object`.

3.1.0.rc1

[3.1.0.rc1](https://github.com/nhairs/python-json-logger/compare/v3.0.1...v3.1.0.rc1) - 2023-05-03

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

Added
- `.core` - more details below.
- Orjson encoder support via `.orjson.OrjsonFormatter`.
- MsgSpec encoder support via `.msgspec.MsgspecFormatter`.

Changed
- `.jsonlogger` has been moved to `.json` with core functionality moved to `.core`.
- `.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.

Deprecated
- `.jsonlogger` is now `.json`
- `.jsonlogger.RESERVED_ATTRS` is now `.core.RESERVED_ATTRS`.
- `.jsonlogger.merge_record_extra` is now `.core.merge_record_extra`.

Removed
- Python 3.7 support dropped
- `.jsonlogger.JsonFormatter._str_to_fn` replaced with `.core.str_to_object`.

Page 1 of 2

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.