Easy-to-read display of logs with save to db redis and sending notifications in telegram
Project description
Simple framework for easy-to-read display of logs with save to db redis and sending notifications in telegram.
Once I couldn't find a simple framework that does 3 things that are important to me:
- marking messages with color in the terminal,
- saving logs by day to the database redis,
- sending important notifications in telegram.
Then it was created LogsWeasel.
log = LogsWeasel(settings={
'redis_connection': {
'db': {{id_database, default that 0, int}},
'host': {{redis_host, str}}),
'port': {{number_of_port, int}},
'username': {{username, str}},
'password': {{password, str}},
'redis_files': {
'prefix_file': 'logs_',
'frequency': 'day'},
'telegram_token': {{you_tg_token, str}},
'users_list': {{[tg_id_int_1, tg_id_int_2, ...], list with int}})
Example use:
from logsweasel import LogsWeasel
log = LogsWeasel(settings={
'redis_connection': {
'db': int(os.getenv('redis_db')),
'host': os.getenv('redis_host'),
'port': int(os.getenv('redis_port')),
'username': os.getenv('redis_username'),
'password': os.getenv('redis_password')},
'redis_files': {
'prefix_file': 'logs_',
'frequency': 'day'},
'telegram_token': os.getenv('telegram_token'),
'users_list': [int(os.getenv('user_tgid'))]})
def hello_world(def_name='Hello World'):
try:
log.info_start(def_name) # message starting
message = 'Hello World #1'
print(message)
time.sleep(3) # working...
if message == 'Hello World #1':
log.info_done(def_name, send=True) # done message
else:
log.warning(def_name) # not done message
except Exception:
log.critical(def_name) # finish with error
hello_world()
where:
- redis_connection - settings for your database redis.
redis_files:
-
prefix_file - name of your save in db redis. Default key in db redis: {prefix_file}{date}
-
frequency - you can use 3 types frequency for save logs in new key: day, week, month.
-
telegram_token - token to initialize your bot to send notifications
-
users_list - list of user IDs to whom notifications will be sent
* You can find out your telegram ID, for example, using a bot @my_id_bot
* You can also save some logs in a separate file (for even better readability), for this you can use the following construction:
log.info(def_name, postfix='another_key')
You save the key like this: {prefix_file}{date}{postfix}
* If you do not want to use redis, write None in key redis_connection
* If you do not want to use telegram, write None in key telegram_token
Default methods for save logs:
Information records/notifications. Marked in green in the terminal
log.info() - default message
log.info_start() - usually used when starting a function
log.info_done() - usually used when a function has completed successfully
log.info_not_done() - used when a function has not completed
Notices to watch out for. Marked in yellow in the terminal.
log.warning() - important low
log.warning_not_done() - important medium
log.warning_error() - important high
Critical notices. They have the ability to save in the terminal full descriptions of the errors that have occurred.
log.critical() - error with important high
log.critical_fatal() - error with important very high, х_х
* default argument for warning/critical - exc=True, that add traceback message
** Use telegram bot notifications with great care. A large number of users in the send list will affect the performance of the program as a whole!
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 logs_weasel-1.15.tar.gz
.
File metadata
- Download URL: logs_weasel-1.15.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4e380676a457486a29e905a941f90127d5755728d8ff58e3885817a9458fd1f |
|
MD5 | a26529ec5cd185a8e50f48d6e257f518 |
|
BLAKE2b-256 | 2c399ca291e4b8d3767e3e0dbe4b3efb9b3936289ef7c710c9e0d42b188caf8f |
File details
Details for the file logs_weasel-1.15-py3-none-any.whl
.
File metadata
- Download URL: logs_weasel-1.15-py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7940d1c3aa296a918ca90691003f989971a71c252562a6915baf6ee665f32792 |
|
MD5 | d2604e585f647388930aea787add041c |
|
BLAKE2b-256 | bef75f98a7750fc624fca3fc2618f49acb37bbc69c710c02487d09d98c32dccc |