A versatile logging module for Python projects
Project description
RsLogMod
RsLogMod is a flexible and powerful Python logging module designed to manage log files with features such as log rotation, customizable paths, and various log levels. It is easy to use yet offers extensive customization options.
Table of Contents
- Installation
- Getting Started
- Default Behavior
- Log Levels & Prefixes
- Customization
- Configuration
- Changelog
- License
Installation
Install RsLogMod using pip:
pip install rslogmod
Then import the module:
from RsLogMod import rlog, RsConfig
Getting Started
Here’s a simple example:
from RsLogMod import rlog, RsConfig
# Set log folder path (only needed once, saved in config)
RsConfig.set_log_folder_path('path/to/log/folder')
# Log a message
rlog(log_file_name='my_log', log_level=1, log_entry='This is a log entry.')
Explanation
log_file_name: Name of the log file (e.g.,my_log).log_level: Log level (1for INFO,2for ERROR, etc.).log_entry: The message to log.verbose: Optionally setverbose=Trueto print the message to the terminal as well.
Default Behavior
- Log Rotation: Enabled by default (log files rotate when they reach the set max size).
- Log to File and Terminal: Logs are written to the file, and verbose mode controls whether they are printed to the terminal.
- Config Persistence: Once paths are set, they are stored in a config file for future sessions.
Log Levels & Prefixes
RsLogMod supports the following log levels, each with its own prefix:
- 0:
[DEBUG]- Detailed debug information. - 1:
[INFO]- General program execution info. - 2:
[ERROR]- Errors encountered during execution. - 3:
[CRITICAL]- Critical issues that need attention. - 4:
[SEC-ALERT]- Security-related alerts. - 5:
[SEC-BREACH]- Security breaches or serious issues.
Customization
Set Log Folder Path
RsConfig.set_log_folder_path('/path/to/logs')
Set Archive Folder Path
RsConfig.set_archive_path('/path/to/archive')
Set Maximum Log Size
RsConfig.set_log_file_max_size(50) # Max size is set in MB
Enable or Disable Log Rotation
RsConfig.enable_log_rotation(True) # Enable or disable log rotation
Enable or Disable Verbose Mode
Verbose mode controls whether logs are printed to the terminal. It can be controlled globally via the config or for each individual rlog() call.
Global Verbose Mode
Enable verbose globally, applying to all future log entries unless overridden:
RsConfig.enable_verbose(True) # Enable terminal printing for all logs
Per-Entry Verbose Mode
Control verbosity per log entry by using the verbose parameter in rlog():
rlog(log_file_name='my_log', log_level=1, log_entry='This will print to terminal', verbose=True)
Verbose Mode Behavior
- If
verboseis passed inrlog(), it overrides the global config. - If not passed (
None), it falls back to the config file setting. - If both are unset (
None), logs will only be written to the file.
Example Configuration:
{
"log_rotation": true,
"verbose": null,
"max_size_in_mega_bytes": 50,
"log_folder": "path/to/logs",
"archive_folder": "path/to/archive"
}
"verbose": true: Logs print to terminal and file."verbose": false: Logs are only written to the file."verbose": null: Behavior is controlled by the individualrlog()calls.
Display Configuration
RsConfig.display() # Display the current configuration in JSON format
Configuration
RsLogMod stores its settings in a configs.json file:
{
"log_rotation": true,
"verbose": null,
"max_size_in_mega_bytes": 50,
"log_folder": "/path/to/logs",
"archive_folder": "/path/to/logs/archived"
}
log_rotation: Enables or disables log rotation.verbose: Controls whether logs are printed to the terminal.log_folder: Directory where logs are saved.archive_folder: Directory where archived logs are stored.
Changelog
[Jun 21, 2025] — v1.2.0
- Class Rename: The
Configureclass has been renamed toRsConfigfor improved clarity and consistency. - Backward Compatibility: The
Configureclass remains fully functional in this version for compatibility. - Important:
Configurewill be removed in version 2.0.0. - Upgrade Notice: Update your code to use
RsConfigbefore upgrading to version 2.0.0 to avoid breakage. - Internal: All references and docs updated to use
RsConfig.
License
This project is licensed under the MIT 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rslogmod-1.3.0.tar.gz.
File metadata
- Download URL: rslogmod-1.3.0.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e27edf1581c52912a88f96fabca1a3f16f915bd3ccb9b7693cb732109009f36
|
|
| MD5 |
a2d56e3c3b0918fb26a145a2f1e589d8
|
|
| BLAKE2b-256 |
d3238e6e11031b6a38a5465158b81c29ead2369d47debd80cc35f3e3762537cc
|
File details
Details for the file rslogmod-1.3.0-py3-none-any.whl.
File metadata
- Download URL: rslogmod-1.3.0-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
595061124ffcd91b5edb82ecf660c6a62591ecfb9935e8568b7199b010bc18c2
|
|
| MD5 |
0ea361a66421b567515057693570493b
|
|
| BLAKE2b-256 |
61d417a6a7d1b5b2dda4df034fbed85d819b025807a67814adfb56555b6731c8
|