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
printfunction 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
printto 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d0d17dd2fab239f9d3a3a7282070430f16bf53113a02718410ba994b39aed47
|
|
| MD5 |
9ce08e0858e2a66d9b771bc7ff1826e3
|
|
| BLAKE2b-256 |
1119b818765b5417d902ecd520e79199cc2ad2bee84772ecd8881da877b900dd
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4fb8d6edb074f87fffc8d552f1e9dbffa96b8b958e80d07348d716dfaac49d8b
|
|
| MD5 |
ecf577fe9da35a9d09a3c3cebd8a35a1
|
|
| BLAKE2b-256 |
4ce4df900104b7cffb5ed35aa67e94d5e2edd87b5a33f6ef49df21404fd0c3fd
|