Skip to main content

This is a logging framework. It is based on jk_logging but can be used with Trio.

Project description

jk_triologging

Introduction

This python module ...

Information about this module can be found here:

Why this module?

With jk_logging there is a logging module available that allows constructing loggers from a JSON based description, offers buffers for log messages and supports hierarchical logging. Unfortunately this particular module is synchroneous and therefore can not be used in Trio directly. This implementation therefore wraps jk_logging and provides an API usable in Trio.

Limitations of this module

This module provides classes wrapping (almost all) classes from jk_logging. It provides almost all functionality despite one: Descending hierarchically is not supported. (This might change one day, but not in the near future.)

How to install module

This module can be installed easily using pip.

Use this command for a system wide installation of this module:

$ sudo pip install jk-triologging

Use this command for user specific installation of this module:

$ pip install --user jk-triologging

The PiPy module is always kept in sync with the Github repository so using PyPi is equivalent to a manual installation using the code provided on Github.

How to use this module

Import this module

Please include this module into your application using the following code:

import jk_triologging

Construct a logger

Example:

log = jk_triologging.TrioConsoleLogger.create(logMsgFormatter=jk_triologging.COLOR_LOG_MESSAGE_FORMATTER)

Here we construct a console logger (which is an object that writes log messages to STDOUT.) It is configured for using colors for all output here.

Use the logger

You can create text based log messages and write them to the logger. Example:

await log.debug("This is a test for DEBUG.")
await log.notice("This is a test for NOTICE.")
await log.info("This is a test for INFO.")
await log.warning("This is a test for WARNING.")
await log.error("This is a test for ERROR.")

Exceptions can be logged as well. Example:

try:
	await log.notice("Let's try a calculation that will fail ...")
	a = 0
	b = 5 / a
except Exception as ee:
	await log.error(ee)

What kind of log objects are available?

You can make use of the following log objects:

  • TrioBufferLogger - implements a buffer for log messages, which later on can be forwareded to another logger
  • TrioConsoleLogger - implements writing to STDOUT
  • TrioFileLogger - implements writing to a file
  • TrioFilterLogger - implements filtering of log messages according to log level
  • TrioMulticastLogger - implements forwarding log messages to multiple loggers
  • TrioNamedMulticastLogger - implements forwarding log messages to multiple loggers
  • TrioNullLogger - discards all log messages
  • TrioStringListLogger - implements a buffer for log messages, where all log messages are stored a plain text strings

Further Reading

See the test directory for detailed examples of all loggers.

Contact Information

This is Open Source code. That not only gives you the possibility of freely using this code it also allows you to contribute. Feel free to contact the author(s) of this software listed below, either for comments, collaboration requests, suggestions for improvement or reporting bugs:

License

This software is provided under the following license:

  • Apache Software License 2.0

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

jk_triologging-0.2019.10.19.tar.gz (9.6 kB view details)

Uploaded Source

File details

Details for the file jk_triologging-0.2019.10.19.tar.gz.

File metadata

  • Download URL: jk_triologging-0.2019.10.19.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.5.2

File hashes

Hashes for jk_triologging-0.2019.10.19.tar.gz
Algorithm Hash digest
SHA256 7cf8ea518d4008a0d79df580ce9846e7129eb37d95af93baee749fc3878772e4
MD5 8537c64ddaab407c092b4b85036617de
BLAKE2b-256 be1479dddfc3d97044334210426940a9cc07887946f0a990f1c1605773baceea

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