Skip to main content

Python advanced print with varnames.

Project description

LK Logger

中文版

Advanced print tool for Python.

Features:

  • Show source map, function name and varnames in printing.

  • Easy to start. Just add two lines code to enable lk-logger.

    # add this
    import lk_logger
    lk_logger.setup()
    
    # then remain using `print` as usual...
    print('Hello world')
    print(123, 456, 789)
    ...
    

    It will replace Python's built-in print function to take care all the leftovers.

  • Simple to write:

    # before
    a, b = 1, 2
    print('a = {}, b = {}, a + b = {}'.format(a, b, a + b))
    
    # after
    print(a, b, a + b)
    

    (Another example)

  • Non-intrusive. After enable it like above, no more modifications on your source code projects (it is low-cost and low-effort to migrate). You will see the new effects at once.

    This would be a good choice for developers who have dived into their projects with Python print to get a new start with a new logging util.

  • Code highlight.

Install

pip install lk-logger

The latest version is 5.0.0 or higher.

Quick Start

import lk_logger
lk_logger.setup(show_varnames=True)

print('hello world')

a, b = 1, 2
print(a, b, a + b)

print(a, b, (c := a + b), c + 3)

Screenshot:

Advanced Usage

Usually, the above example is enough to use.

The advanced feature is "markup" shorthand.

Use a markup as in the first or the last parameter, the markup is a string that starts with ':', consists of multiple marks.

For example:

print(':i', 'monday')
print(':i', 'tuesday')
print(':i', 'wednesday')

It prints weekdays with a numeric prefix:

Another one:

import lk_logger
lk_logger.setup()

print('this is a divider', ':d')

print(':v0', 'this is a TRACE message')
print(':v1', 'this is a DEBUG message')
print(':v2', 'this is a INFO  message')
print(':v3', 'this is a WARN  message')
print(':v4', 'this is a ERROR message')
print(':v5', 'this is a FATAL message')

Here is a list of all available marks:

Mark Description
:d divider line
:i index
:l long / loose format (multiple lines)
:p parent layer
:r rich format
:s short / single line format
:t timestamp (not available in current version)
:v verbosity / log level

Markup options:

:d0     default divider line (default)
:d1+    user defined (if not, fallback to :d0)

:i0     reset index
:i1     number width fixed to 1 (1, 2, 3, ... 9, 10, 11, ...) (default)
:i2     number width fixed to 2 (01, 02, 03, ..., 99, 100, 101, ...)
:i3     number width fixed to 3 (001, 002, 003, ..., 999, 1000, 1001, ...)
:i4+    number width fixed to *
:i9+    reserved, not defined yet (will be fallback to :i1)

:l0     let lk-logger decides how to format long message (default)
:l1     force expand all nodes

:p0     self layer
:p1     parent layer (default)
:p2     grand parent layer
:p3     great grand parent layer
:p4     great great grand parent layer
:p5+    great great great ... grand parent layer
        note: be careful using :p2+, it may crash if the layer not exists

:v0     trace
        if you don't like using number, you can use an alias :vT
        (:vT is not supported in current version. we'll bring it soon)
:v1     debug (alias is :vD) (default)
:v2     info (alias is :vI)
:v3     warning (alias is :vW)
:v4     error (alias is :vE)
:v5     fatal (alias is :vF)
:v6+    user defined (if not, fallback to :v0)

Detailed examples:

See examples/02_all_markup_usages.py.

Screenshot:

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

lk-logger-5.1.3.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

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

lk_logger-5.1.3-py3-none-any.whl (27.9 kB view details)

Uploaded Python 3

File details

Details for the file lk-logger-5.1.3.tar.gz.

File metadata

  • Download URL: lk-logger-5.1.3.tar.gz
  • Upload date:
  • Size: 23.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.1 Darwin/21.2.0

File hashes

Hashes for lk-logger-5.1.3.tar.gz
Algorithm Hash digest
SHA256 2d0d17dd2fab239f9d3a3a7282070430f16bf53113a02718410ba994b39aed47
MD5 9ce08e0858e2a66d9b771bc7ff1826e3
BLAKE2b-256 1119b818765b5417d902ecd520e79199cc2ad2bee84772ecd8881da877b900dd

See more details on using hashes here.

File details

Details for the file lk_logger-5.1.3-py3-none-any.whl.

File metadata

  • Download URL: lk_logger-5.1.3-py3-none-any.whl
  • Upload date:
  • Size: 27.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.1 Darwin/21.2.0

File hashes

Hashes for lk_logger-5.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4fb8d6edb074f87fffc8d552f1e9dbffa96b8b958e80d07348d716dfaac49d8b
MD5 ecf577fe9da35a9d09a3c3cebd8a35a1
BLAKE2b-256 4ce4df900104b7cffb5ed35aa67e94d5e2edd87b5a33f6ef49df21404fd0c3fd

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