Skip to main content

Smart Logger library for Python projects with FastAPI, Flask, and Django support

Project description

Smart Logger

Smart Logger is a Python logging library with FastAPI, Flask, and Django support. It provides UUID-based logs, date/parent_folder structured logs, database metadata storage, and a FastAPI dashboard with filters, real-time monitoring, charts.


Features

  • Multi-framework support: FastAPI, Flask, Django

  • Structured logging: UUID for each log entry

  • Dynamic folder structure: date/parent_folder/filename.log

  • Database metadata storage (default SQLite)

  • SmartLogger class with logging levels:

    • logger.info()
    • logger.error()
    • logger.warning()
    • logger.critical()
    • logger.debug()
  • FastAPI Dashboard UI:

    • Real-time logs
    • Filter logs by date, time, UUID, log type
    • Bar charts for daily, monthly, yearly log insights
    • System info cards and statistics
    • Interactive UI with logout functionality
  • Secure: input sanitization, token-based authentication, blacklist token support

  • CLI commands for user management, configuration, and server launch


Installation

pip install az-smart-logger

Quick Setup (Step by Step)

  1. Generate default config file

    smart-logger make-smart-logger-default-conf
    

    → This creates a config file in your project folder.

  2. Update config file

    • Add your database credentials, log paths, and other settings.
  3. Set the configuration

    smart-logger set_config
    
  4. Verify active configuration

    smart-logger show_config
    

    → Ensures everything is correctly set.

  5. Initialize database tables

    smart-logger init-db
    
  6. Create an admin user

    smart-logger create-admin-user
    
  7. Run the Smart Logger Dashboard UI

    smart-logger ui --host 127.0.0.1 --port 8000
    

✅ Now your logging system with UI is ready!


Usage

1. FastAPI Example

from fastapi import FastAPI
from smart_logger import SmartLogger

app = FastAPI()
logger = SmartLogger()

@app.get("/")
def home():
    logger.info("Home accessed")  # UUID, folder, filename auto-detected
    return {"message": "Hello FastAPI"}

2. Flask Example

from flask import Flask
from smart_logger import SmartLogger

app = Flask(__name__)
logger = SmartLogger()

@app.route("/")
def home():
    logger.info("Home accessed")
    return "Hello Flask"

3. Django Example

from smart_logger import SmartLogger

logger = SmartLogger()

def example_view(request):
    logger.info("Django view accessed")
    from django.http import HttpResponse
    return HttpResponse("Hello Django")

CLI Commands

Launch Dashboard UI

smart-logger ui --host 127.0.0.1 --port 8000 --workers 1 --reload False
  • --reload optional (default False)
  • Runs isolated FastAPI server independent of main project

Initialize Database Tables

smart-logger init-db

Admin User Management

  • Create admin user:
smart-logger create-admin-user
  • Change password:
smart-logger change-password <email>
  • Forgot password (reset without old password):
smart-logger forgot-password <email>
  • List users:
smart-logger list-users
  • Delete user:
smart-logger delete-user <email>

Configuration Management

  • Set global config:
smart-logger set_config
  • Show active config:
smart-logger show_config
  • Create default config:
smart-logger make-smart-logger-default-conf

Folder Structure

smart_logger/
├── cli/
├── config/
├── core/
├── exceptions/
├── models/
├── security/
├── ui/
├── tests/
├── examples/
├── setup.py
├── pyproject.toml
├── setup.cfg
├── LICENSE
└── README.md
  • core/ → Logger class, DB handlers
  • ui/ → Dashboard server, templates, static files
  • cli/ → Commands for server launch, user management
  • models/ → SQLAlchemy models
  • security/ → Auth, middleware, blacklist token
  • config/ → Default and global configuration
  • tests/ → Unit and integration tests
  • examples/ → Usage examples

Logging API

from smart_logger import SmartLogger

logger = SmartLogger()

logger.info("Informational message")
logger.warning("Warning message")
logger.error("Error message")
logger.critical("Critical message")
logger.debug("Debugging message")
  • Folder and file auto-detection: module name used if not provided
  • UUID generated for every log entry
  • Database metadata stored automatically

Dashboard Features

  • Real-time log view

  • Filter by: date, time, UUID, log type

  • Charts:

    • Daily/Monthly/Yearly error insights
    • Bar charts by log type
  • System info: CPU, memory, uptime

  • Cards & Stats for quick overview

  • Logout button for secure access


License

MIT License. See LICENSE file for details.


Key Points:

  1. Step-by-step setup guide added.
  2. Clear instructions for installation and usage.
  3. Examples for FastAPI, Flask, Django included.
  4. CLI instructions for UI and DB initialization.
  5. Folder structure overview for developers.
  6. Ready for PyPI and GitHub documentation.

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

az_smart_logger-1.0.4.tar.gz (33.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

az_smart_logger-1.0.4-py3-none-any.whl (48.2 kB view details)

Uploaded Python 3

File details

Details for the file az_smart_logger-1.0.4.tar.gz.

File metadata

  • Download URL: az_smart_logger-1.0.4.tar.gz
  • Upload date:
  • Size: 33.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for az_smart_logger-1.0.4.tar.gz
Algorithm Hash digest
SHA256 5134979087308e22285a4ad6f931309c3e18bbebf87044a360139c4e276f3bdd
MD5 09e4b7c6dfe7a86858f271176d5aeb44
BLAKE2b-256 149f894b2d02d04e5df523a3a6501469e672b2335cee1a3d59eebf74c6eb6425

See more details on using hashes here.

File details

Details for the file az_smart_logger-1.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for az_smart_logger-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f9e062aead5d777a414a51c89f48b2b7108459c2266b7e4f282dea5e258e646a
MD5 46dc78c6f6d1913a5a07cd8a9ea77018
BLAKE2b-256 7b82569562cd1d5449656c547e84e8b89f12a60c1cf91e6564f9987b1070074b

See more details on using hashes here.

Supported by

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