Skip to main content

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

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 (1 for INFO, 2 for ERROR, etc.).
  • log_entry: The message to log.
  • verbose: Optionally set verbose=True to print the message to the terminal as well.

Default Behavior

  1. Log Rotation: Enabled by default (log files rotate when they reach the set max size).
  2. Log to File and Terminal: Logs are written to the file, and verbose mode controls whether they are printed to the terminal.
  3. 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 verbose is passed in rlog(), 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 individual rlog() 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 Configure class has been renamed to RsConfig for improved clarity and consistency.
  • Backward Compatibility: The Configure class remains fully functional in this version for compatibility.
  • Important: Configure will be removed in version 2.0.0.
  • Upgrade Notice: Update your code to use RsConfig before 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

rslogmod-1.3.0.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

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

rslogmod-1.3.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

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

Hashes for rslogmod-1.3.0.tar.gz
Algorithm Hash digest
SHA256 0e27edf1581c52912a88f96fabca1a3f16f915bd3ccb9b7693cb732109009f36
MD5 a2d56e3c3b0918fb26a145a2f1e589d8
BLAKE2b-256 d3238e6e11031b6a38a5465158b81c29ead2369d47debd80cc35f3e3762537cc

See more details on using hashes here.

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

Hashes for rslogmod-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 595061124ffcd91b5edb82ecf660c6a62591ecfb9935e8568b7199b010bc18c2
MD5 0ea361a66421b567515057693570493b
BLAKE2b-256 61d417a6a7d1b5b2dda4df034fbed85d819b025807a67814adfb56555b6731c8

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