Skip to main content

An easy way to change the log level in runtime.

Project description

pypi version license python versions Build Status Code coverage

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

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. This is the root logger configuration and will allow all loggers with no handler to inherit it from the root.

Example:

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.

LOGGER_PANEL_BASE_URL = "/another-path/"

urls.py

Add the django_logger_panel.urls to the urlpatterns.

urlpatterns = [
    ...
    path("", include("django_logger_panel.urls")),
    ...

]

Screenshots

Logger Panel

logger panel

Logger Details

logger details

REST API

List loggers

Curl Example:

curl http://localhost:8000/loggers/ -H 'Accept:application/json'

Response:

{
  "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:

curl http://localhost:8000/loggers/django.db.backends -H 'Accept:application/json'

Response:

{
  "name": "django.db.backends",
  "level": {
    "code": 0,
    "name": "NOTSET"
  },
  "effectiveLevel": {
    "code": 20,
    "name": "INFO"
  },
  "parent": "django"
}

Change logger level

Curl Example:

curl -X POST http://localhost:8000/loggers/django.db.backends -d '{"logger_level": "DEBUG"}'

Response:

{
  "name": "django.db.backends",
  "level": {
    "code": 10,
    "name": "DEBUG"
  },
  "effectiveLevel": {
    "code": 10,
    "name": "DEBUG"
  },
  "parent": "django"
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-logger-panel-0.1.6.tar.gz (15.2 kB view hashes)

Uploaded Source

Built Distribution

django_logger_panel-0.1.6-py2.py3-none-any.whl (16.2 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page