Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vd2org/betterlogging
Improved version of the standard logger.
https://github.com/vd2org/betterlogging
debugging log logger logging logging-library python python3
Last synced: 3 months ago
JSON representation
Improved version of the standard logger.
- Host: GitHub
- URL: https://github.com/vd2org/betterlogging
- Owner: vd2org
- License: mit
- Created: 2020-10-16T22:24:47.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-02-05T07:59:26.000Z (about 1 year ago)
- Last Synced: 2024-11-01T23:33:03.198Z (3 months ago)
- Topics: debugging, log, logger, logging, logging-library, python, python3
- Language: Python
- Homepage:
- Size: 68.4 KB
- Stars: 9
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BetterLogging
![BetterLogging](https://telegra.ph/file/ebd3b272eb1969dd55f58.png "BetterLogging")
Improved version of the standard logger.
* Added `TRACE` level.
* Added `ColorizedFormatter`.
* Added better traceback formatting.This package patching the standard `logging` library.
Thus, after import, all improvements will be available inside the `logging` module.
But for better typing, I prefer to use `betterlogging` everywhere.
### Requirements
Python 3.7 and above. No additional dependencies.
### Installation
`pip install betterlogging`
### Usage
#### Simple usage
```python
import betterlogging as logginglogging.basic_colorized_config(level=logging.INFO)
logger = logging.getLogger('test')
logger.trace("some trace message")
logger.debug("some debug message")
logger.info("some info message")
logger.warning("some warning message")
logger.error("some error message")
logger.critical("some critical message")
```#### More advanced usage
```python
import betterlogging as logging# You can use shortcut:
logger = logging.get_colorized_logger(name="test")# Or, if you want to configure formatter:
handler = logging.StreamHandler()
handler.setFormatter(logging.ColorizedFormatter(hide_lib_diagnose=False))logger.addHandler(handler)
logger.setLevel(logging.TRACE)logger.trace("some trace message")
logger.debug("some debug message")
logger.info("some info message")
logger.warning("some warning message")
logger.error("some error message")
logger.critical("some critical message")def div(x: int, y: int) -> float:
return x / ytry:
div(1, 0)
except:
logger.exception("Some exception")
```#### Config for `uvicorn`
```json
{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"default": {
"()": "betterlogging.ColorizedFormatter"
},
"access": {
"()": "betterlogging.ColorizedFormatter",
"fmt": "%(c_fg_green)s%(asctime)s %(c_color)s%(levelname)-8s%(c_reset)s %(c_fg_cyan)s[%(name)s] %(c_reset)s%(message)s"
}
},
"handlers": {
"default": {
"formatter": "default",
"class": "logging.StreamHandler"
},
"access": {
"formatter": "access",
"class": "logging.StreamHandler",
"stream": "ext://sys.stdout"
}
},
"loggers": {
"": {
"handlers": [
"default"
],
"level": "DEBUG"
},
"uvicorn.error": {
"level": "INFO"
},
"uvicorn.access": {
"handlers": [
"access"
],
"level": "INFO",
"propagate": false
}
}
}
``````shell script
uvicorn application:app --debug --reload --log-config ./logging.json
```