log4j - Formattazione registro

Apache log4j fornisce vari Layoutoggetti, ognuno dei quali può formattare i dati di registrazione secondo vari layout. È anche possibile creare un oggetto Layout che formatta i dati di registrazione in un modo specifico dell'applicazione.

Tutti gli oggetti Layout ricevono un file LoggingEvent oggetto dal Appenderoggetti. Gli oggetti Layout quindi recuperano l'argomento del messaggio da LoggingEvent e applicano l'ObjectRenderer appropriato per ottenere la rappresentazione String del messaggio.

I tipi di layout

La classe di primo livello nella gerarchia è la classe astratta org.apache.log4j.Layout. Questa è la classe base per tutte le altre classi Layout nell'API log4j.

La classe Layout è definita astratta all'interno di un'applicazione, non usiamo mai questa classe direttamente; invece, lavoriamo con le sue sottoclassi che sono le seguenti:

  • DateLayout

  • HTMLLayout

  • PatternLayout.

  • SimpleLayout

  • XMLLayout

I metodi di layout

Questa classe fornisce un'implementazione scheletrica di tutte le operazioni comuni tra tutti gli altri oggetti Layout e dichiara due metodi astratti.

Sr.No. Metodi e descrizione
1 public abstract boolean ignoresThrowable()

Indica se le informazioni di registrazione gestiscono qualsiasi oggetto java.lang.Throwable passato ad essa come parte dell'evento di registrazione. Se l'oggetto Layout gestisce l'oggetto Throwable, l'oggetto Layout non lo ignora e restituisce false.

2 public abstract String format(LoggingEvent event)

Le singole sottoclassi di layout implementano questo metodo per la formattazione specifica del layout.

Oltre a questi metodi astratti, la classe Layout fornisce un'implementazione concreta per i metodi elencati di seguito:

Sr.No. Metodi e descrizione
1 public String getContentType()

Restituisce il tipo di contenuto utilizzato dagli oggetti Layout. La classe base restituisce text / plain come tipo di contenuto predefinito.

2 public String getFooter()

Specifica le informazioni nel piè di pagina del messaggio di registrazione.

3 public String getHeader()

Specifica le informazioni di intestazione del messaggio di registrazione.

Ogni sottoclasse può restituire informazioni specifiche della classe sovrascrivendo l'implementazione concreta di questi metodi.