# mqttlogger
`mqttlogger` is a Python package that provides a custom logging handler to publish log messages to an MQTT broker. This is useful for centralizing log messages from distributed systems for monitoring and debugging purposes.
## Features
- Publish log messages to an MQTT broker.
- Configurable MQTT connection settings.
- Supports logging to both MQTT and local files.
## Installation
You can install `mqttlogger` via pip:
```
pip install mqttlogger
```
## Usage
Here's a basic example of how to use `mqttlogger` in your Python application:
```python
import logging
from mqttlogger import makeLogger
# Create a logger
logger = makeLogger(name='myapp', log_to_file=True, log_level='DEBUG')
# Log messages
logger.info("This is an info message")
logger.debug("This is a debug message")
logger.warning("This is a warning message")
```
## Singleton Logger
The `makeLogger` function returns a logger that acts as a singleton. This means that once a logger is created with specific setup values, you can retrieve the same logger instance elsewhere in your application without needing to re-specify those values. This is particularly useful for maintaining consistent logging behavior across different modules or components of your application.
To retrieve the logger again, simply call `logging.getLogger` with the same name:
```python
# Retrieve the existing logger instance
logger = logging.getLogger('myapp')
# Continue logging
logger.info("Continuing to log with the same logger instance")
```
## Testing
To test `mqttlogger` with a local Mosquitto broker, follow these steps:
### Prerequisites
Ensure that Mosquitto is installed on your system. You can install it using a package manager:
- **On Ubuntu/Debian**:
```bash
sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients
```
- **On macOS** (using Homebrew):
```bash
brew install mosquitto
```
### Running the Test
1. **Start the Mosquitto Broker**: The test script will automatically start a local Mosquitto broker.
2. **Run the Test Script**: Execute the test script to verify that `mqttlogger` is working correctly with the Mosquitto broker.
```bash
python test_mqttlogger.py
```
This script will start the broker, send a test log message, and then stop the broker.
## Configuration
The `mqttHandler` class allows you to configure various MQTT connection settings, such as:
- `hostname`: The MQTT broker's hostname or IP address.
- `port`: The port number to connect to the MQTT broker.
- `topic`: The MQTT topic to publish messages to.
- `qos`: The quality of service level for message delivery.
- `retain`: Whether the broker should retain the last message sent to the topic.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Contributing
Contributions are welcome! Please feel free to submit a pull request or open an issue.
## Author
Dan Edens - [your.email@example.com](mailto:your.email@example.com)
## Acknowledgments
- [paho-mqtt](https://pypi.org/project/paho-mqtt/) for MQTT client functionality.
Raw data
{
"_id": null,
"home_page": "https://github.com/DanEdens/mqttloghandler",
"name": "mqttloghandler",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "mqtt logging handler",
"author": "Dan Edens",
"author_email": "danedens31@gmail.com",
"download_url": null,
"platform": null,
"description": "# mqttlogger\n\n`mqttlogger` is a Python package that provides a custom logging handler to publish log messages to an MQTT broker. This is useful for centralizing log messages from distributed systems for monitoring and debugging purposes.\n\n## Features\n\n- Publish log messages to an MQTT broker.\n- Configurable MQTT connection settings.\n- Supports logging to both MQTT and local files.\n\n## Installation\n\nYou can install `mqttlogger` via pip:\n\n```\npip install mqttlogger\n```\n\n## Usage\n\nHere's a basic example of how to use `mqttlogger` in your Python application:\n\n```python\nimport logging\nfrom mqttlogger import makeLogger\n\n# Create a logger\nlogger = makeLogger(name='myapp', log_to_file=True, log_level='DEBUG')\n\n# Log messages\nlogger.info(\"This is an info message\")\nlogger.debug(\"This is a debug message\")\nlogger.warning(\"This is a warning message\")\n```\n\n## Singleton Logger\n\nThe `makeLogger` function returns a logger that acts as a singleton. This means that once a logger is created with specific setup values, you can retrieve the same logger instance elsewhere in your application without needing to re-specify those values. This is particularly useful for maintaining consistent logging behavior across different modules or components of your application.\n\nTo retrieve the logger again, simply call `logging.getLogger` with the same name:\n\n```python\n# Retrieve the existing logger instance\nlogger = logging.getLogger('myapp')\n\n# Continue logging\nlogger.info(\"Continuing to log with the same logger instance\")\n```\n\n## Testing\n\nTo test `mqttlogger` with a local Mosquitto broker, follow these steps:\n\n### Prerequisites\n\nEnsure that Mosquitto is installed on your system. You can install it using a package manager:\n\n- **On Ubuntu/Debian**:\n ```bash\n sudo apt-get update\n sudo apt-get install mosquitto mosquitto-clients\n ```\n\n- **On macOS** (using Homebrew):\n ```bash\n brew install mosquitto\n ```\n\n### Running the Test\n\n1. **Start the Mosquitto Broker**: The test script will automatically start a local Mosquitto broker.\n\n2. **Run the Test Script**: Execute the test script to verify that `mqttlogger` is working correctly with the Mosquitto broker.\n\n ```bash\n python test_mqttlogger.py\n ```\n\n This script will start the broker, send a test log message, and then stop the broker.\n\n## Configuration\n\nThe `mqttHandler` class allows you to configure various MQTT connection settings, such as:\n\n- `hostname`: The MQTT broker's hostname or IP address.\n- `port`: The port number to connect to the MQTT broker.\n- `topic`: The MQTT topic to publish messages to.\n- `qos`: The quality of service level for message delivery.\n- `retain`: Whether the broker should retain the last message sent to the topic.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a pull request or open an issue.\n\n## Author\n\nDan Edens - [your.email@example.com](mailto:your.email@example.com)\n\n## Acknowledgments\n\n- [paho-mqtt](https://pypi.org/project/paho-mqtt/) for MQTT client functionality.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A custom logging handler that publishes messages to an MQTT broker.",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/DanEdens/mqttloghandler"
},
"split_keywords": [
"mqtt",
"logging",
"handler"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2c2f419618522633121955ab5a538f9fda424bc06f20be1388562cec9dc398b4",
"md5": "c0d2ccf58a5023db2d8049b85bdff93e",
"sha256": "981e38e0d8f714670c10553ca03a5ece12073e986c638c34b920a7d3e6d67efe"
},
"downloads": -1,
"filename": "mqttloghandler-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c0d2ccf58a5023db2d8049b85bdff93e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 2646,
"upload_time": "2024-10-23T16:26:10",
"upload_time_iso_8601": "2024-10-23T16:26:10.005113Z",
"url": "https://files.pythonhosted.org/packages/2c/2f/419618522633121955ab5a538f9fda424bc06f20be1388562cec9dc398b4/mqttloghandler-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-23 16:26:10",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "DanEdens",
"github_project": "mqttloghandler",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "mqttloghandler"
}