Skip to main content

Loguru based custom logging package for simple python projects.

Project description

Easily Launch Logging (el_logging)

Loguru based custom logging package for simple python projects.

Features

  • Loguru based logging - https://pypi.org/project/loguru
  • Custom basic logging module
  • Logging to files (all, error, json)
  • Custom logging formats
  • Custom options as a config
  • Colorful logging
  • Multiprocess compatibility (Linux, macOS - 'fork', Windows - 'spawn')

Installation

1. Prerequisites

  • Python (>= v3.7)
  • PyPi (>= v21)

2. Install el-logging

A. [RECOMMENDED] PyPi install

# Install or upgrade el-logging package:
pip install --upgrade el-logging

# To uninstall package:
pip uninstall -y el-logging

B. Manually add to PYTHONPATH (Recommended for development)

# Clone repository by git:
git clone git@bitbucket.org:ellexiinc/el_logging.git
cd el_logging

# Install python dependencies:
pip install --upgrade pip
cat requirements.txt | xargs -n 1 -L 1 pip install --no-cache-dir

# Add current path to PYTHONPATH:
export PYTHONPATH="${PWD}:${PYTHONPATH}"

C. Manually compile and setup (Not recommended)

# Clone repository by git:
git clone git@bitbucket.org:ellexiinc/el_logging.git
cd el_logging

# Building python package:
pip install --upgrade pip setuptools wheel
python setup.py build
# Install python dependencies with built package to current python environment:
python setup.py install --record installed_files.txt

# To remove only installed el-logging package:
head -n 1 installed_files.txt | xargs rm -vrf
# Or to remove all installed files and packages:
cat installed_files.txt | xargs rm -vrf

3. Configuration (You can skip this step, if you don't want to configure)

cp -v .env.example [PROJECT_DIR]/.env
cd [PROJECT_DIR]
nano .env
mkdir -vp [PROJECT_DIR]/configs

cp -v logger.yaml [PROJECT_DIR]/configs/logger.yaml
rm -vf logger.yaml
cd [PROJECT_DIR]
nano configs/logger.yaml

Usage/Examples

from el_logging import logger


logger.trace('Tracing...')
logger.debug('Debugging...')
logger.info('Logging info.')
logger.success('Success.')
logger.warning('Warning something.')
logger.error('Error occured.')
logger.critical('CRITICAL ERROR.')


def divide(a, b):
    _result = a / b
    return _result

try:
    divide(10, 0)
except Exception as err:
    logger.exception("Failed to divide:")

Running Tests

To run tests, run the following command:

python -m unittest tests/test_*.py

Environment Variables

You can use the following environment variables inside .env file:

ENV=development
DEBUG=true
APP_NAME=tsc_vrae
LOGS_DIR="/var/log/app"

Configuration

You can use the following sample configuration:

logger:
    level: "INFO"
    use_color: true
    use_icon: false
    use_backtrace: true
    std_format_str: "[<c>{time:YYYY-MM-DD HH:mm:ss.SSS Z}</c> | <level>{lvlname:<5}</level> | <w>{file}</w>:<w>{line}</w>]: <level>{message}</level>"
    use_log_file: false
    file_format_str: "[{time:YYYY-MM-DD HH:mm:ss.SSS Z} | {lvlname:<5} | {file}:{line}]: {message}"
    rotate_when:
        at_hour: 0
        at_minute: 0
        at_second: 0
    rotate_file_size: 10000000
    backup_file_count: 50
    file_encoding: utf8
    all_log_filename: "{app_name}.std.all.log"
    err_log_filename: "{app_name}.std.err.log"
    use_log_json: false
    use_custom_json: false
    json_all_log_filename: "{app_name}.json.all.log"
    json_err_log_filename: "{app_name}.json.err.log"
    # logs_dir: /var/log/app

References

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

el_logging-0.2.27.tar.gz (6.3 kB view details)

Uploaded Source

File details

Details for the file el_logging-0.2.27.tar.gz.

File metadata

  • Download URL: el_logging-0.2.27.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.6.0 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for el_logging-0.2.27.tar.gz
Algorithm Hash digest
SHA256 ec376d39629aa5f921f2a6a94b749bc5bbaaa2338b850f7d2e4859a2f81d4c59
MD5 5e7cd84b3741d3832c9b0a695a709d63
BLAKE2b-256 b7e66f3b8e6923d08a1b89b8ceb841d6106e111884e17f63cdafc9f19c8bf401

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page