https://github.com/aznironman/logger_x
Logger_X server is a comprehensive logging tool designed for robust and flexible logging in Python applications.
https://github.com/aznironman/logger_x
api-listener argparse backend database-logging devops error-handling fastapi file-logging log-management logging postgresql pydantic python python-logging python3 software-development sqlite system-logging troubleshooting uvicorn
Last synced: 3 months ago
JSON representation
Logger_X server is a comprehensive logging tool designed for robust and flexible logging in Python applications.
- Host: GitHub
- URL: https://github.com/aznironman/logger_x
- Owner: AznIronMan
- License: other
- Created: 2023-11-28T22:48:15.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-06-03T17:01:19.000Z (about 1 year ago)
- Last Synced: 2024-06-03T19:48:32.734Z (about 1 year ago)
- Topics: api-listener, argparse, backend, database-logging, devops, error-handling, fastapi, file-logging, log-management, logging, postgresql, pydantic, python, python-logging, python3, software-development, sqlite, system-logging, troubleshooting, uvicorn
- Language: Python
- Homepage:
- Size: 583 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Logger_X Server by Clark & Burke, LLC
- **Version**: v1.2.1
- **Date**: 05.27.2024 @ 09:35 AM PST
- **Written by**: Geoff Clark of Clark & Burke, LLC- **README.md Last Updated**: 05.27.2024
Logger_X Server is a comprehensive logging tool designed for robust and flexible logging in Python applications. It supports both file-based and database-based logging, with features for creating, updating, and managing log entries. Additional functionalities include an API listener for receiving log data, and planned features for a console interface and GUI.
## Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
## Prerequisites
- Python 3.10 or higher
- Additional Python packages: `argparse`, `psycopg2`, `uvicorn`, `fastapi`, `pydantic`, etc.## Installation
Clone the repository and install the required packages:
```bash
git clone https://github.com/AznIronMan/logger_x
cd logger
```(Automated) - Installs Python 3.12 (if needed), creates a virtual environment, installs the required packages, and builds logger_helper launcher.
```bash
./install.sh # Mac or Linux (be sure to chmod +x)
./install.bat # Windows
```(for first time help use) - Explains how to launch the logger_x.py helper menu.
```bash
./logger_helper.sh # Mac or Linux (be sure to chmod +x)
./logger_helper.bat # Windows
```(Manual) - Installs the required packages. (This assumes you have Python 3.11 or 3.12 _recommended_ installed)
```bash
pip install -r requirements.txt
```## Usage
This utility can be used in several modes: adding a log entry, updating an entry, launching a GUI or console (future implementation), and starting an API listener.
```bash
python logger_x.py --help # Display usage information and args
```logger_x.py can be used as a standalone utility or imported as a module. All functions were built in the single file for ease of use and deployment.
### Adding a Log Entry
```bash
python logger_x.py -a '{"logging_msg": "Your log message", "logging_level": "INFO"}'
```### Updating a Log Entry
```bash
python logger_x.py -u '{"uuid": "entry-uuid", "status": "new-status"}'
```### Starting the API Listener
```bash
python logger_x.py -l
```## Web GUI
The Logger_X Server now includes a web GUI for easier log management. The frontend is built with React, and the backend uses FastAPI. To run the web GUI:
1. Ensure you have the necessary environment variables set in your `.env` file.
2. Navigate to the `webgui` directory and install the required packages:```bash
cd webgui
npm install
```3. Start the web GUI:
```bash
npm start
```### Environment Variables
The following environment variables are required for the web GUI:
- `HTTPS` (boolean, manual, should mirror if .env has SSL cert/key defined or not)
- `REACT_APP_API_URL`
- `REACT_APP_API_PORT`
- `REACT_APP_SECRET_KEY`
- `REACT_APP_MILITARY_TIME` (optional, default is `false`)## Completed Features
- File-based logging
- Database-based logging (PostgreSQL/SQLite)
- CLI for adding and updating log entries
- API listener for receiving log data
- Web GUI for log management
- Automated installation script
- Automated virtual environment creation
- Automated launcher creation## Future Features
- Console and GUI interfaces (all OS supported -- GUI using PyQt6)
- Interactive API Management in interface
- Advanced log management (search, export, updating, etc.) in interface
- Support for MySQL, Mongo, Redis, and other databases
- AI and ML integration for log analysis and anomaly detection## Update Notes
### Version 1.2.1 - 05.27.2024 @ 09:35 AM PST
- Fixed `create_db_log()` not having the proper number of parameters for DB writing.
- Added `logger_x_table_name` variable.
- Added HTTP/HTTPS variable for flexibility and auto-adjustment based on `.env` (for backend) and frontend will look at `https=boolean` in the `npm start` in `package.json` for adjustment.
- Fixed `create_database()` not working and added `table_exists()` function.
- Updated the listener CLI argument to include a check if the table exists and if not, create it.## Author Information
- **Author**: [Geoff Clark of Clark & Burke, LLC](https://www.cnb.llc)
- **Email**: [[email protected]](mailto:[email protected])
- **Socials**:
[GitHub @aznironman](https://github.com/aznironman)
[IG: @cnbllc](https://instagram.com/cnbllc)
[X: @clarkandburke](https://www.x.com/clarkandburke)## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Third-Party Notices
All rights reserved by their respective owners. Users must comply with the licenses and terms of service of the software being installed.