first commit

This commit is contained in:
enne2
2024-10-23 13:29:21 +02:00
commit 16b9829a2c
7 changed files with 93 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
LOG_LEVEL=DEBUG
+1
View File
@@ -0,0 +1 @@
__pycache__
View File
View File
+41
View File
@@ -0,0 +1,41 @@
import logging
import os
import json
import socket
class JsonFormatter(logging.Formatter):
def format(self, record):
log_record = {
'timestamp': self.formatTime(record, self.datefmt),
'level': record.levelname,
'message': record.getMessage(),
'name': record.name,
'filename': record.filename,
'funcName': record.funcName,
'lineno': record.lineno,
'pathname': record.pathname,
'hostname': socket.gethostname()
}
# Merging additional fields from record
if hasattr(record, 'extra'):
log_record.update(record.extra)
return json.dumps(log_record)
def setup_logger(name):
logger = logging.getLogger(name)
logger.setLevel(os.getenv('LOG_LEVEL', logging.INFO))
# Console Handler
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
# Formatter
formatter = JsonFormatter()
console_handler.setFormatter(formatter)
# Adding handler to the logger
if not logger.hasHandlers():
logger.addHandler(console_handler)
return logger
+15
View File
@@ -0,0 +1,15 @@
from lib import log
from more import more_operations, More
# Utilizzo del logger
logger = log.setup_logger(__name__)
logger.debug('Questo è un messaggio di debug')
logger.info('Questo è un messaggio informativo')
logger.warning('Questo è un messaggio di avvertimento', extra={'ansia': 'molta'})
logger.error('Questo è un messaggio di errore', extra={'cause': 'non so'})
logger.critical('Questo è un messaggio critico', extra={'ansia' :'estrema'})
more_operations()
with More() as more:
more.do_something()
+35
View File
@@ -0,0 +1,35 @@
from lib import log
# Utilizzo del logger
logger = log.setup_logger(__name__)
def more_operations():
logger.debug('Questo è un messaggio di debug')
logger.info('Questo è un messaggio informativo')
logger.warning('Questo è un messaggio di avvertimento')
logger.error('Questo è un messaggio di errore')
logger.critical('Questo è un messaggio critico')
class More():
def __init__(self):
pass
def __enter__(self):
# Codice da eseguire all'inizio del contesto
logger.info('Entrato nel contesto di More')
return self
def __exit__(self, exc_type, exc_value, traceback):
# Codice da eseguire alla fine del contesto
logger.info('Uscito dal contesto di More')
if exc_type:
logger.error(f'Errore: {exc_value}')
return False # Ritorna False per propagare l'eccezione, True per sopprimerla
def do_something(self):
logger.debug('Questo è un messaggio di debug')
logger.info('Questo è un messaggio informativo')
logger.warning('Questo è un messaggio di avvertimento')
logger.error('Questo è un messaggio di errore')
logger.critical('Questo è un messaggio critico')