Skip to main content

python client for https://github.com/ausward/QTLogs

Project description

QT Py Logs

A Python client for publishing log messages to an MQTT broker, designed to work with the QTLogs project. This package provides a simple, singleton logger that can be used across a Python application to send structured log messages to a specified MQTT topic.

Installation

Install the package using poetry:

poetry add qt-py-logs

Or using pip:

pip install qt-py-logs

Usage

The SetupLogger function allows you to configure the logger. You can either pass in all the configuration details directly as arguments or provide a path to a YAML configuration file.

Option 1: Configuring with Python arguments

Set up the logger with your MQTT broker details by passing the topic, broker, port, and source directly:

from qt_py_logs import SetupLogger

logger = SetupLogger(
    topic="your/mqtt/topic",
    broker="your_mqtt_broker.com",
    port=1883,
    source="your_application_name"
)

Option 2: Configuring with a YAML file

Alternatively, you can configure the logger using a YAML file. Create a config.yaml file (or any other name) with the following structure:

topic: "your/mqtt/topic"
broker: "your_mqtt_broker.com"
port: 1883
source: "your_application_name"

Then, set up the logger by providing the path to your YAML configuration file using the config_path argument:

from qt_py_logs import SetupLogger

logger = SetupLogger(config_path="path/to/your/config.yaml")

The logger will automatically watch for changes in the YAML file and reload the configuration in real-time, so you don't need to restart your application.

Once the logger is set up using either method, you can use the logger instance to log messages from anywhere in your application:

from qt_py_logs import QTlogger

# Get the logger instance
logger = QTlogger()

# Log a message
logger.log("INFO", "This is an informational message.")
logger.log("ERROR", "This is an error message.")

# If you want to add additional fields to the log message
extra_data = {"user_id": 1234, "operation": "data_processing"}
logger.log("DEBUG", "This is a debug message with extra data.", Extra=extra_data, save=False)

The log messages will be published to the specified MQTT topic in a JSON format:

The save field indicates whether to save the log message to persistent storage.

{
    "from": "your_application_name",
    "payload": "This is an informational message.",
    "level": "INFO",
    "timestamp": "2025-11-24 10:00:00",
    "caller": "your_function_name",
    "save": true,
}

qtpi

License

This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. See the LICENSE file for details.

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

qt_py_logs-0.2.1.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

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

qt_py_logs-0.2.1-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file qt_py_logs-0.2.1.tar.gz.

File metadata

  • Download URL: qt_py_logs-0.2.1.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.14.2 Darwin/25.1.0

File hashes

Hashes for qt_py_logs-0.2.1.tar.gz
Algorithm Hash digest
SHA256 ab1645508552a44bd79639aa42ce2c15f81950c4ee5c316715bfb271c5822869
MD5 0098355557610beb4ddd355376418132
BLAKE2b-256 7e06c25330ff27aec49c32bc9a6e25111365d343ae7d66251cd5f645b1fa54e6

See more details on using hashes here.

File details

Details for the file qt_py_logs-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: qt_py_logs-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.14.2 Darwin/25.1.0

File hashes

Hashes for qt_py_logs-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c579e62f9a770f1b373e31b4def0201ed34bb179210cea2958d85f4930fae888
MD5 53bca2df594be5d453a137d7defdcdab
BLAKE2b-256 8166ab888913ad1bd5e0f3fc296c1d7dae47a3c969468a94978ac7c064e4729e

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