Skip to main content

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: True

determines 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: True

determines 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_time and include_date will 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

CycLog-1.0.0.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

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

CycLog-1.0.0-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

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

Hashes for CycLog-1.0.0.tar.gz
Algorithm Hash digest
SHA256 f51950aec0163124648a6084b72bf1a753dcd6c35ae23e3704e8888946987a14
MD5 ff594feeb0c4e6fa345adc9d61993e4e
BLAKE2b-256 d220d08f64c42bb12bff67a548244fbecfbe89dd6ff64bebd1568b6d48ef90e5

See more details on using hashes here.

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

Hashes for CycLog-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4ef11463500f16bb555835fb497d516226168dda7e2c97ebaf015331bad0c8bd
MD5 f1904f2debf4d33c74fe8f67a965ef83
BLAKE2b-256 f841b9500a8c2dc41cf3aaf0c2686ae3e8b1dd2262c24b754a193a3427ca3b7a

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