log4j - Configurazione
Il capitolo precedente ha spiegato i componenti principali di log4j. Questo capitolo spiega come configurare i componenti principali utilizzando un file di configurazione. La configurazione di log4j implica l'assegnazione del Livello, la definizione dell'Appender e la specifica degli oggetti Layout in un file di configurazione.
Il log4j.propertiesfile è un file di configurazione log4j che mantiene le proprietà in coppie chiave-valore. Per impostazione predefinita, LogManager cerca un file denominatolog4j.properties nel CLASSPATH.
Il livello del logger root è definito come DEBUG. IlDEBUG allega l'appender denominato X ad esso.
Imposta l'appender denominato X come appender valido.
Imposta il layout per l'appender X.
log4j.properties Sintassi:
Di seguito è riportata la sintassi del file log4j.properties per un appender X:
# Define the root logger with appender X
log4j.rootLogger = DEBUG, X
# Set the appender named X to be a File appender
log4j.appender.X=org.apache.log4j.FileAppender
# Define the layout for X appender
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.conversionPattern=%m%n
log4j.properties Esempio
Usando la sintassi sopra, definiamo quanto segue in log4j.properties file:
Il livello del logger root è definito come DEBUG, Il DEBUG appender denominato FILE ad esso.
L'appender FILE è definito come org.apache.log4j.FileAppender. Scrive in un file denominatolog.out situato nel log directory.
Il modello di layout definito è % m% n , il che significa che il messaggio di registrazione stampato sarà seguito da un carattere di nuova riga.
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
È importante notare che log4j supporta la sostituzione di variabili in stile UNIX come $ {variableName}.
Livello di debug
Abbiamo usato DEBUG con entrambe le appendici. Tutte le opzioni possibili sono:
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- ALL
Questi livelli sono spiegati più avanti in questo tutorial.
Appendici
Apache log4j fornisce oggetti Appender che sono i principali responsabili della stampa di messaggi di log su diverse destinazioni come console, file, socket, log eventi NT, ecc.
Ogni oggetto Appender ha proprietà diverse ad esso associate e queste proprietà indicano il comportamento di quell'oggetto.
Proprietà | Descrizione |
---|---|
disposizione | Appender utilizza gli oggetti Layout e il modello di conversione ad essi associato per formattare le informazioni di registrazione. |
bersaglio | Il target può essere una console, un file o un altro elemento a seconda dell'appender. |
livello | Il livello è necessario per controllare il filtraggio dei messaggi di registro. |
soglia | All'appender può essere associato un livello di soglia indipendentemente dal livello di logger. L'Appender ignora tutti i messaggi di registrazione che hanno un livello inferiore al livello di soglia. |
filtro | Gli oggetti Filter possono analizzare le informazioni di registrazione oltre la corrispondenza dei livelli e decidere se le richieste di registrazione devono essere gestite da un particolare Appender o ignorate. |
Possiamo aggiungere un oggetto Appender a un Logger includendo la seguente impostazione nel file di configurazione con il seguente metodo:
log4j.logger.[logger-name]=level, appender1,appender..n
È possibile scrivere la stessa configurazione in formato XML come segue:
<logger name="com.apress.logging.log4j" additivity="false">
<appender-ref ref="appender1"/>
<appender-ref ref="appender2"/>
</logger>
Se sei disposto ad aggiungere un oggetto Appender all'interno del tuo programma, puoi utilizzare il seguente metodo:
public void addAppender(Appender appender);
Il metodo addAppender () aggiunge un Appender all'oggetto Logger. Come dimostra la configurazione di esempio, è possibile aggiungere molti oggetti Appender a un logger in un elenco separato da virgole, ciascuno stampando le informazioni di registrazione su destinazioni separate.
Abbiamo utilizzato un solo appender FileAppender nel nostro esempio sopra. Tutte le possibili opzioni di appender sono:
- AppenderSkeleton
- AsyncAppender
- ConsoleAppender
- DailyRollingFileAppender
- ExternallyRolledFileAppender
- FileAppender
- JDBCAppender
- JMSAppender
- LF5Appender
- NTEventLogAppender
- NullAppender
- RollingFileAppender
- SMTPAppender
- SocketAppender
- SocketHubAppender
- SyslogAppender
- TelnetAppender
- WriterAppender
Copriremo FileAppender in Accesso ai file e JDBC Appender sarebbe trattato in Registrazione nel database .
disposizione
Abbiamo utilizzato PatternLayout con il nostro appender. Tutte le opzioni possibili sono:
- DateLayout
- HTMLLayout
- PatternLayout
- SimpleLayout
- XMLLayout
Utilizzando HTMLLayout e XMLLayout, puoi generare log in HTML e anche in formato XML.
Formattazione del layout
Imparerai come formattare un messaggio di registro nel capitolo: Formattazione registro .