https://github.com/jonathadv/django-logger-panel
An easy way to change the log level in runtime
https://github.com/jonathadv/django-logger-panel
django django-rest-framework library logging python python3
Last synced: 6 months ago
JSON representation
An easy way to change the log level in runtime
- Host: GitHub
- URL: https://github.com/jonathadv/django-logger-panel
- Owner: jonathadv
- License: mit
- Created: 2021-05-23T17:25:38.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2021-06-04T15:14:25.000Z (about 5 years ago)
- Last Synced: 2025-09-07T19:56:02.866Z (10 months ago)
- Topics: django, django-rest-framework, library, logging, python, python3
- Language: Python
- Homepage:
- Size: 967 KB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://pypi.python.org/pypi/django-logger-panel)
[](https://pypi.python.org/pypi/django-logger-panel)
[](https://pypi.python.org/pypi/django-logger-panel)
[](https://travis-ci.org/jonathadv/django-logger-panel)
[](https://codecov.io/gh/jonathadv/django-logger-panel)
# django-logger-panel
An easy way to change the log level in runtime
## Installation
`pip install django-logger-panel`
## Features
- List all active loggers .
- Change any logger level in run time.
- Change all logger levels at once.
- Display logger information.
## Settings.py
### INSTALLED_APPS
Add `loggerpanel` to installed apps
```python
INSTALLED_APPS = [
...
'django_logger_panel',
]
```
### LOGGING
Make sure the `root` has a `handler` set at the `LOGGING` dictionary in `settings.py`, as described in the [Django Documentation.](https://docs.djangoproject.com/en/3.2/topics/logging/#examples)
This is the `root` `logger` configuration and will allow all `loggers` with no `handler` to inherit it from the `root`.
**Example:**
```python
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'console': {
'format': '%(asctime)s %(levelname)-8s %(name)-12s %(message)s',
},
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'console',
},
},
'root': {
'level': 'DEBUG',
'handlers': ['console'],
},
}
```
### LOGGER_PANEL_BASE_URL
Optionally, change the default base url `/loggers/` by setting the property `LOGGER_PANEL_BASE_URL`.
This variable is not required.
```python
LOGGER_PANEL_BASE_URL = "/another-path/"
```
## urls.py
Add the `django_logger_panel.urls` to the `urlpatterns`.
```python
urlpatterns = [
...
path("", include("django_logger_panel.urls")),
...
]
```
## Screenshots
### Logger Panel

### Logger Details

## REST API
### List loggers
**Curl Example:**
```bash
curl http://localhost:8000/loggers/ -H 'Accept:application/json'
```
**Response:**
```json
{
"log_levels": {
"CRITICAL": 50,
"ERROR": 40,
"WARNING": 30,
"INFO": 20,
"DEBUG": 10,
"NOTSET": 0
},
"loggers": [
{
"name": "_all_loggers_",
"level": {
"code": 0,
"name": "NOTSET"
},
"effectiveLevel": {
"code": 0,
"name": "NOTSET"
},
"parent": null
},
{
"name": "root",
"level": {
"code": 30,
"name": "WARNING"
},
"effectiveLevel": {
"code": 30,
"name": "WARNING"
},
"parent": null
},
{
"name": "django",
"level": {
"code": 20,
"name": "INFO"
},
"effectiveLevel": {
"code": 20,
"name": "INFO"
},
"parent": "root"
},
{
"name": "django.db.backends",
"level": {
"code": 0,
"name": "NOTSET"
},
"effectiveLevel": {
"code": 20,
"name": "INFO"
},
"parent": "django"
},
{
"name": "django.request",
"level": {
"code": 0,
"name": "NOTSET"
},
"effectiveLevel": {
"code": 20,
"name": "INFO"
},
"parent": "django"
},
{
"name": "django.server",
"level": {
"code": 20,
"name": "INFO"
},
"effectiveLevel": {
"code": 20,
"name": "INFO"
},
"parent": "django"
},
{
"name": "django.security.csrf",
"level": {
"code": 0,
"name": "NOTSET"
},
"effectiveLevel": {
"code": 20,
"name": "INFO"
},
"parent": "django"
},
{
"name": "django.db.backends.schema",
"level": {
"code": 0,
"name": "NOTSET"
},
"effectiveLevel": {
"code": 20,
"name": "INFO"
},
"parent": "django.db.backends"
}
]
}
```
### Return a single logger
**Curl Example:**
```bash
curl http://localhost:8000/loggers/django.db.backends -H 'Accept:application/json'
```
**Response:**
```json
{
"name": "django.db.backends",
"level": {
"code": 0,
"name": "NOTSET"
},
"effectiveLevel": {
"code": 20,
"name": "INFO"
},
"parent": "django"
}
```
### Change logger level
**Curl Example:**
```bash
curl -X POST http://localhost:8000/loggers/django.db.backends -d '{"logger_level": "DEBUG"}'
```
**Response:**
```json
{
"name": "django.db.backends",
"level": {
"code": 10,
"name": "DEBUG"
},
"effectiveLevel": {
"code": 10,
"name": "DEBUG"
},
"parent": "django"
}
```