commit
16b9829a2c
7 changed files with 93 additions and 0 deletions
@ -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 |
||||||
@ -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() |
||||||
@ -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') |
||||||
Loading…
Reference in new issue