Skip to main content

A fast 'read to use' Logging system which provides stdout/file/custom stream with easy syntax and operation. It's a very simple approach of Laravel drivers sorts, by the way, handlers ands drivers are both the same

Project description

Get Started

install

python -m pip install EscribaLogger

Usage

Just import, add drivers and use:

You can output your logs using a pre-configured builtin rich stdout handler

from EscribaLogger import Log

Log.add_driver('stdout') # important!
Log.set_logger_name('CustomName')

Log.info('My info message')
# > [07/16/23 17:01:06] INFO  CustomName - My info message

Log file driver

# You can add another driver. In this case, we will add the file driver
Log.add_driver('file')


Log.info('Some message', extra={"context_var": "value"})
# > The message will be stored in "logs/2023-07-16.log"
# > [2023-07-16 16:13:55,100] EscribaLogger.INFO - Some message - {"context_var": "value"}

In the default logging system, handle context variables is a exhausting task. EscribaLogger added the "extra_context" log variable to solve this. You add the context info for any custom driver.

Change default log files storage

# You can change default path to store log files in:
Log.add_driver('file', driver_option={'file_location': 'another/path'})


Log.info('Some message', extra={"context_var": "value"})
# > The message will be stored in "another/path/2023-07-16.log"
# > [2023-07-16 16:13:55,100] EscribaLogger.INFO - Some message - {"context_var": "value"}

Contributing

Setup env

  1. init the pyenv:

    • Windows: python -m venv env --prompt escriba-logger-pyenv
    • Linux/Unix: python3 -m venv env --prompt escriba-logger-pyenv
  2. activate pyenv:

    • Windows (CMD/PowerShell): env/Scripts/activate.bat
    • Windows (GitBash/Cygwin): source env/Scripts/activate
    • Linux/Unix: source env/bin/activate
  3. Install Dependencies:

    • Windows (CMD/PowerShell): python -m pip install -r requirements.dev.txt
    • Linux/Unix: python -m pip install -r requirements.dev.txt

Tests

We are using pytest and coverage.py to maintain this project. You can run the tests by using:

# Don't forget activate pyenv!!!

[~/EscribaLogger] -> source env/bin/activate

# run the pytests + coverage
(escriba-logger-pyenv) [~/EscribaLogger] -> python -m coverage run -m pytest -l -v
# it can be simplified using "coverage run -m pytest -l -v"


====================================test session starts ====================================
platform win32 -- Python 3.11.4, pytest-7.4.0, pluggy-1.2.0 -- C:\Users\strov\Documents\github\EscribaLogger\env\Scripts\python.exe
cachedir: .pytest_cache
rootdir: C:\Users\strov\Documents\github\EscribaLogger
configfile: pytest.ini
plugins: anyio-3.7.1, mock-3.11.1
collected 5 items

tests/unit/test_builtin_drivers.py::test_driver_stdout... PASSED                     [ 20%]
tests/unit/test_builtin_drivers.py::test_driver_stdout... PASSED                     [ 40%]
tests/unit/test_builtin_drivers.py::test_driver_file_s... PASSED                     [ 60%]
tests/unit/test_builtin_drivers.py::test_driver_file_s... PASSED                     [ 80%]
tests/unit/test_extra_content.py::test_extra_context_p... PASSED                     [100%]

===================================== 5 passed in 0.21s ===================================

Continue below...

the command above will generate the .coverage file in root path. Now you can generate the coverage report

(escriba-logger-pyenv) [~/EscribaLogger] -> coverage report -m

OR

(escriba-logger-pyenv) [~/EscribaLogger] -> python -m coverage report -m

Or you can create a entire webpage to see the results:

(escriba-logger-pyenv) [~/EscribaLogger] -> coverage html

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

escribalogger-1.22.3.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

escribalogger-1.22.3-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file escribalogger-1.22.3.tar.gz.

File metadata

  • Download URL: escribalogger-1.22.3.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.9.3 CPython/3.10.11

File hashes

Hashes for escribalogger-1.22.3.tar.gz
Algorithm Hash digest
SHA256 9abdc43fd1c40974999cbc10da9fa4f46cdb3921b0a9787b0526f2f1c9937bc9
MD5 50c2632f326dced98f2636cfc2b0598e
BLAKE2b-256 7d217f6da28903ce977657120f85ad45ca74b47f9cf903a9cb07f98e8ed3c335

See more details on using hashes here.

File details

Details for the file escribalogger-1.22.3-py3-none-any.whl.

File metadata

File hashes

Hashes for escribalogger-1.22.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1460c16e7e028996baf823b3abec1351291a617fc976e7f0b4862bb83d8dc021
MD5 3b3db888b21ebee020c4a465010d6c25
BLAKE2b-256 bd13b0c4d3d6e956daaf3f4bd9661801919acbb3842db4445b2bb25cfe200ffa

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