A python module to handle cyclic logs.
Project description
CycleLog
This library will let you log into a cyclic file easily. You
What is a cycle log?
- A cycle log is a log file which does not keep more than N lines, once the log reaches N lines the logger will delete older lines from the beginning, so you can only have latest logs which you need to figure out the error, to reproduce last steps, and such.
basic example:
from CycLog import CycleLogger
logger = CycleLogger(
file_name="your_project.log"
)
for i in range(10):
logger.log(i)
which will be logged:
[27/01/2021 - 19:36] : 0
[27/01/2021 - 19:36] : 1
[27/01/2021 - 19:36] : 2
[27/01/2021 - 19:36] : 3
[27/01/2021 - 19:36] : 4
[27/01/2021 - 19:36] : 5
[27/01/2021 - 19:36] : 6
[27/01/2021 - 19:36] : 7
[27/01/2021 - 19:36] : 8
[27/01/2021 - 19:36] : 9
Since the default max lines is 500, we got the entire log. let's try to change it to 5:
from CycLog import CycleLogger
logger = CycleLogger(
file_name="your_project.log",
max_lines=5
)
for i in range(10):
logger.log(i)
And now we only get the last 5 lines.
[27/01/2021 - 19:38] : 5
[27/01/2021 - 19:38] : 6
[27/01/2021 - 19:38] : 7
[27/01/2021 - 19:38] : 8
[27/01/2021 - 19:38] : 9
In principle you can gives any object that has __str__ method, logger.log
converts implicitly any object to string.
Few more settings:
include_date: bool, default:Truedetermines whether to add time to log message or not. it affects the format message only in case of the format message is the default.
for example, without date, a typical message will look:
[19:38] : 9
include_time: bool, default:Truedetermines whether to add date to log message or not. it affects the format message only in case of the format message is the default.
for example, without time, a typical message will look:
[27/01/2021] : 9
if both
include_timeandinclude_datewill be False, a log will only show the message itself.
max_lines: int, default:500.Determines the maximum of lines in a file.
message_format: str, default:"[{date} - {time}] : {message}"you can set it to your own message and then you can add keyword arguments to
logger.log, for example:
from CycLog import CycleLogger
logger = CycleLogger(
file_name="your_project.log",
max_lines=5,
message_format=CycleLogger.MESSAGE_FORMAT + " [from {name} - {n}]"
)
for i in range(10):
logger.log(i, name="Jonatan", n=i)
will be
[27/01/2021 - 19:50] : 6 [from Jonatan - 6]
[27/01/2021 - 19:50] : 7 [from Jonatan - 7]
[27/01/2021 - 19:50] : 8 [from Jonatan - 8]
[27/01/2021 - 19:50] : 9 [from Jonatan - 9]
date_format: str, default:"%d/%m/%Y"Determines how the date will look.
time_format: str, default:"%H:%M"Determines how the time will look.
file_mode: str, default:a+A mode to open the file in, the mode must be writable and readable. you can see a list of modes and explanation: https://docs.python.org/3/library/functions.html#open
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
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 CycLog-1.0.0.tar.gz.
File metadata
- Download URL: CycLog-1.0.0.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f51950aec0163124648a6084b72bf1a753dcd6c35ae23e3704e8888946987a14
|
|
| MD5 |
ff594feeb0c4e6fa345adc9d61993e4e
|
|
| BLAKE2b-256 |
d220d08f64c42bb12bff67a548244fbecfbe89dd6ff64bebd1568b6d48ef90e5
|
File details
Details for the file CycLog-1.0.0-py3-none-any.whl.
File metadata
- Download URL: CycLog-1.0.0-py3-none-any.whl
- Upload date:
- Size: 4.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ef11463500f16bb555835fb497d516226168dda7e2c97ebaf015331bad0c8bd
|
|
| MD5 |
f1904f2debf4d33c74fe8f67a965ef83
|
|
| BLAKE2b-256 |
f841b9500a8c2dc41cf3aaf0c2686ae3e8b1dd2262c24b754a193a3427ca3b7a
|