Anastasia Logging Standarization
Project description
Anastasia Logging
This repository holds a logging implementation wrapper for python scripts with standarized code notifications and additional features.
Summary
- About logging python library
- Enhancements and additional functionalities
- Log Output Standarization
- Predefined Parameters for AnastasiaLoggers from Environment Variables
- Code Tags Standarization
- Versioning
1. About logging Python Library
This repository is based in python base log management library called logging.
Commonly, when this library is intended to be used, for a basic usage a simple logging import is recommended to be used in order to avoid additional settings in our internal scripts.
import logging
logging.warning("I am a very usefull warning")
OUTPUT => WARNING:root:I am a very usefull warning
But, for more complex repositories, is recommended to manage different loggers according to their necessities. For a customized logging behaviour, a Logger class must be declared from logging.
import logging
logger = logging.Logger("custom_logger")
logger.warning("I am a very usefull warning")
OUTPUT => I am a very usefull warning
Have you noticed in the first import logging example that appears the word root in the output console? This is because when you use import logging
directly, a default Logger class is instanciated with name root along with default configurations.
This repository contains a class called AnastasiaLogger, which inherits from Logger class and standarize logging definitions and has some improvments over information (.info()), warning (.warning()) and error (.error()) methods.
from anastasia_logging import AnastasiaLogger
logger = AnastasiaLogger()
logger.warning("I am a very usefull warning")
OUTPUT => 2023-05-08 10:39:17 UTC/GMT-0400 | [ANASTASIA-JOB] WARNING: I am a very usefull warning
If a script already has a logging usage, it is possible to replace import logging
with import anastasia_logging as logging
and no modifications are required from the script side to work!
import anastasia_logging as logging
logging.warning("I am a very usefull warning")
OUTPUT => 2023-05-08 10:39:17 UTC/GMT-0400 | [ANASTASIA-JOB] WARNING: I am a very usefull warning
2. Enhancements and Additional Functionalities
2.1 Log Output Standarization
AnastasiaLogger has a common structure in order to show information, which is the following one:
YYYY-MM-DD HR:MN:SS UTC/GMT(+-)HHMN | [TAG] LEVEL: message
TAG is define by default as ANASTASIA-JOB (can be changed during class instantiation), and LEVEL is defined according to level method called.
TAG is intended to differentiate responsabilities along scripts in other repositories.
2.2 Predefined Parameters for AnastasiaLoggers from Environment Variables
For a faster logging behaviour along an entire repository, some variables that AnastasiaLogger can recieve can be predefined as environment variables, which are:
- ANASTASIA_LOG_NAME: name identification of logger instance (default=
"anastasia-log"
) - ANASTASIA_LOG_TAG: tag identification for job type for StreamHandlers (console) and FileHandlers (file) (default=
"ANASTASIA-JOB"
) - ANASTASIA_LOG_LEVEL: define severity hierarchy for log generation (default=
"INFO"
) - ANASTASIA_LOG_SAVELOG: generate
.log
file containing logs generated (default=False
) - ANASTASIA_LOG_PATH: define a custom name for log file (default=
"anastasia-log.log"
)
If it is not the case, AnastasiaLogger will instanciate with default parameters.
2.3 Code Tags Standarization
In order to have a common identification for upper level implementations, AnastasiaLogger holds a standarized code implementations according to different topics.
The coding structure is the following one:
Code | Topic |
---|---|
0 | Unindentified |
1XX | Data related |
2XX | Mathematical related |
3XX | AI related |
4XX | Resources related |
5XX | Operative System related |
6XX | API related |
7XX | AWS related |
Methods info(), warning() and error() can be declared with a code as parameter in order to extended log with a code description.
import anastasia_logging as logging
logging.warning("I am a dataset warning", 100)
OUTPUT => 2023-05-08 11:55:27 UTC/GMT-0400 | [ANASTASIA-JOB] WARNING: <W100> I am a dataset warning
If a code is already predefined and no message is introduced, a default message will appear according to code declared.
3. Versioning
v1.0.0
-
Features:
- Anastasia Logger Class abstraction
- Standar code description definitions for INFO, WARNING and ERROR
- Predefined AnastasiaLogger parameters loaded from environment variables
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
File details
Details for the file anastasia_logging-1.0.0.tar.gz
.
File metadata
- Download URL: anastasia_logging-1.0.0.tar.gz
- Upload date:
- Size: 7.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.0 CPython/3.8.5 Linux/5.19.0-41-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b79f5cdb481176e1af88cc9deda46bec3a619a5c7facb4a4878be8b19094b21 |
|
MD5 | 1dc7af4bfa12e9067494f74796a9eef0 |
|
BLAKE2b-256 | 279fbc96c796eaa52ebaafc58e5abd3fdb1fded87525762dfb05a079d8055307 |
File details
Details for the file anastasia_logging-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: anastasia_logging-1.0.0-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.0 CPython/3.8.5 Linux/5.19.0-41-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa41611dc7ed1cb35bd4ba173b3cd78090333b76ac052d537be8cb6af4b84627 |
|
MD5 | 01288f99800f0a40ca4c0fa91adaf586 |
|
BLAKE2b-256 | fa03601df4891e397ff832cdc8186ecbdeadb3d4b85bb660f294c0d618c9c455 |