first commit
This commit is contained in:
@@ -0,0 +1 @@
|
||||
__pycache__
|
||||
+41
@@ -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')
|
||||
Reference in New Issue
Block a user