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_name='my_log', log_level=1, log_entry='This is a log entry.')

Explanation

  • log_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_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

[Jan 15, 2025]

  • Class Name Change: Renamed the Configure class to RsConfig for better clarity and consistency in the codebase.
  • Deprecation Warning: The Configure class is still functional but deprecated. It will be removed in version 2. A deprecation warning will appear when using the old class name.
  • Action Required: Start using RsConfig in your code to avoid issues in future releases. The old class (Configure) will NOT be available in version 2.

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.2.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.2.0-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file rslogmod-1.2.0.tar.gz.

File metadata

  • Download URL: rslogmod-1.2.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.3

File hashes

Hashes for rslogmod-1.2.0.tar.gz
Algorithm Hash digest
SHA256 c43fea5f0e6279d76b7bfbff4588f84a70be977cfd69b3a18fd876130205112d
MD5 f13052d2e8691cb79cd15d6198f55f23
BLAKE2b-256 d34a9e692aad386536288ec2f8bff232113de028f822191717cfca0ff1acd994

See more details on using hashes here.

File details

Details for the file rslogmod-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: rslogmod-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for rslogmod-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3050fae283bc40936515638721e5c76177d97528805e2b9202ee135645cd1a71
MD5 af98364e23de55d2e4b39a134aab9a32
BLAKE2b-256 acdb0b378a2ceceffa5f7ac61d7a3a7c32f418f4c5b31647b03bffa3f1dea4a4

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