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