Skip to content

Aareon/TkLoguru

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Loguru Tkinter Widget

A thread-safe, customizable Tkinter widget for displaying Loguru logs in real-time.

Loguru Tkinter Widget Demo

Features

  • Real-time log display in a Tkinter application
  • Thread-safe implementation using a queue
  • Customizable color modes for log levels
  • Adjustable maximum number of displayed log lines
  • Optional scrollbar
  • Easy integration with existing Loguru logger

Installation

From PyPI

pip install tkloguru

Development setup with uv

uv sync --dev

This installs the package and development tools from pyproject.toml, including ruff.

Usage

Here's a basic example of how to use the Loguru Tkinter Widget:

import tkinter as tk
from loguru import logger
from tkloguru import LoguruWidget, setup_logger

root = tk.Tk()
root.title("Loguru Tkinter Widget Demo")
root.geometry("600x400")

log_widget = LoguruWidget(root, show_scrollbar=True, color_mode='level', max_lines=1000)
log_widget.pack(expand=True, fill=tk.BOTH, padx=10, pady=10)

setup_logger(log_widget)

# Example log messages
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.success("This is a success message")
logger.warning("This is a warning message")
logger.error("This is an error message")
logger.critical("This is a critical message")

root.mainloop()

Development

Lint and format with ruff

uv run ruff check .
uv run ruff format .

Why pydantic is included

tkloguru uses pydantic internally to validate widget configuration and normalize log record payloads before rendering.

Customization

The LoguruWidget class accepts several parameters for customization:

  • master: The parent Tkinter widget (required)
  • show_scrollbar: Boolean to show/hide the scrollbar (default: True)
  • color_mode: String to set the coloring mode ('level', 'message', or 'full') (default: 'level')
  • max_lines: Integer to set the maximum number of displayed log lines (default: 1000)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Loguru for the excellent logging library
  • Tkinter for the GUI framework

About

A custom Tkinter widget that displays Loguru log messages in real-time with support for styling and colors. Monitor application logs directly within your Tkinter GUI.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages