inizializzazione del logger nell'applicazione web basata su JEE

1

Mentre lavoravo su un'applicazione web (basata su JEE), ho visto diversi modi in cui le persone hanno logger istanziati in classi diverse. Il primo modo è classico come,

private static final Logger logger = LoggerFactory.getLogger(AbstractPersistenceObjectDAO.class);

ma poiché le applicazioni JEE sono abilitate al CDI in alcune classi gestite, è stata iniettata come

@Inject
private Logger logger;

C'è qualche vantaggio se si utilizza il logger con CDI, in termini di prestazioni (tempo o memoria)? Ci sono degli aspetti negativi di qualcuno di questi approcci? Mentre @inject può essere utilizzato solo negli ambienti gestiti, offre qualche vantaggio rispetto ad altri?

    
posta Prateek Jain 09.02.2018 - 12:52
fonte

1 risposta

0

techtrainer,

  • Utilizzare l'iniezione con parsimonia e solo quando necessario.
  • Secondo me non ha senso inserire il logger. Io uso la chiamata statica.
  • Entrambi i costi dovrebbero essere trascurabili a meno che non vengano creati molti molti oggetti.

Riferimento:

Che cos'è l'overhead della creazione di un logger SLF4J in contesti statici e non statici

    
risposta data 10.02.2018 - 01:15
fonte

Leggi altre domande sui tag