CentralLog helps recording the logs by MyOperator standards
Project description
centrallog
CentralLog helps recording the logs by MyOperator standards.
The format of the log message is
{ "time":<unix-epoch>, "mc_time":<unix-epoch in microseconds>, "ip":"<host-ip-address>", "service": <application/service name>, "class":"<source class name logging this>", "data":{ "uid":"<unique log identifier>", "msg":"<actual message>", "acl":<acl numeric representation> }, "title": <logging context provider> }
For description please refer to Documentation.
Features
Auto-format log message to desired form by simply configuring the logger.
Installation
To install the centrallog package run the following commands:
$ git clone https://github.com/myoperator/centrallog-py.git $ pip install -e centrallog-py
Quickstart
For the impatient:
from myoperator.centrallog import centrallog
FORMAT = '%(name)s: (%(asctime)s) [%(levelname)s] - %(message)s'
centrallog.basicConfig(format=FORMAT)
logger = centrallog.getLogger('testlogger')
logger.error("Log message")
Configurations
The basic configuration of logger is same as the python’s builtin logging library.
For customizing message-format use the following class methods.
basicConfig(**kwargs)
This method is same as the logging’s basicConfig(**kwargs).
configure(servicename, hostname=’’, uid=’’)
This method is used to configure the servicename, the hostname, the uuid of the logger throughout the program.
TIP: Use this method once throughout the program before logging any message.
is_configured()
Check if a logger is configured and return true if it is configured, else false.
get_configuration()
Returns the configuration tuple(servicename, hostname, uid).
Logging Methods
centrallog supports all the log methods of the logging library with an additional optional keyword-argument acl which shows the relevancy of the log.
The value of acl(Access Control List) can only be one of the following:
1 - developer (default) 2 - support 4 - customer
Example: To log an error message relevant to the customer(acl = 4).
logger.error('message', acl=4)
centrallog also provide some additional methods with default acl behaviour.
dlog(level, message, *args, **kwargs)
developer specific log(acl=1).
slog(level, message, *args, **kwargs)
support specific log(acl=2).
clog(level, message, *args, **kwargs)
customer specific log(acl=4).
Loggin with title
To add a title to the log message centrallog provide one of the two ways.
Using title keyword argument in every log message.
And using title(text) method.
Example:
logger.title('title here').dlog('message here') logger.warning('message...', title='Title here')Tip: On using both method and keyword, keyword will get higher precedence.
For further technical documentation please visit here.
History
0.1.0 (2020-01-04)
First release on PyPI.
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
Hashes for myoperator_py-0.1.8-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 636a755abbb7a447838d06b030ef69c084ab4acccb9b699e48aff601369f3496 |
|
MD5 | 9dd6a4c17b2a34e87843f1711e1e6379 |
|
BLAKE2b-256 | 775be329cb03b3638891bb714c3f6fc1f05141b06452f14497bc9df241c05f2e |