log4jConfigurazione XML 7 Esempio XML 7 Capitolo 4: logger basati su log4j 9 introduzione 9 Examples...
Transcript of log4jConfigurazione XML 7 Esempio XML 7 Capitolo 4: logger basati su log4j 9 introduzione 9 Examples...
log4j
#log4j
Sommario
Di 1
Capitolo 1: Iniziare con log4j 2
Osservazioni 2
Versioni 2
Examples 2
Installazione e configurazione 2
Installazione 2
Configurazione 3
Maven 3
avvio di primavera con Maven 3
edera 4
Gradle 4
Capitolo 2: configurazione 5
Examples 5
File di proprietà Log4j 5
Risolve problemi di runtime con la configurazione di log4j 5
Capitolo 3: log4j registra la personalizzazione 7
Examples 7
File di configurazione 7
Configurazione 7
Scoperta della configurazione 7
Configurazione XML 7
Esempio XML 7
Capitolo 4: logger basati su log4j 9
introduzione 9
Examples 9
log4cxx 9
Log4cplus 9
Log4cpp 9
Titoli di coda 11
Di
You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: log4j
It is an unofficial and free log4j ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official log4j.
The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.
Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to [email protected]
https://riptutorial.com/it/home 1
Capitolo 1: Iniziare con log4j
Osservazioni
Questa sezione fornisce una panoramica su cosa sia log4j e perché uno sviluppatore potrebbe volerlo utilizzare.
Dovrebbe anche menzionare qualsiasi argomento di grandi dimensioni all'interno di log4j e collegarsi agli argomenti correlati. Poiché la documentazione di log4j è nuova, potrebbe essere necessario creare versioni iniziali di tali argomenti correlati.
Log4j Ciclo di vita
Log4j 1.x è la fine della vita a partire dal 5 agosto 2015. [1] [2]. Apache Log4j 2 è il successore di Log4j 1.x.
1 https://logging.apache.org/log4j/1.2/ [2] https://blogs.apache.org/foundation/entry/apache_logging_services_project_announces
Versioni
Versione AvvisoData di rilascio
2.8 ultima versione 2017/01/21
2.7 2016/10/02
2.6.2 2016/07/09
2.4 Log4j 2.4 e versioni successive richiede Java 7 2015/09/20
2.3.6 ultima versione che supporta java 6 2015/05/15
2.0prima versione stabile del ramo 2.x. Rompe compatibilità api. Usa bridge: log4j-1.2-api.jar
2014/07/01
1.2.17 EOF log4j branch 1.x 2015/08/05
Examples
Installazione e configurazione
Installazione
https://riptutorial.com/it/home 2
L'installazione di Log4j2 è semplice come inserire jar log4j2 nel classpath dell'applicazione. Sebbene tu possa voler personalizzare l'output dei registri attraverso ulteriori file di configurazione
Configurazione
Maven
Per aggiungere log4j al progetto in Maven, aggiungi la sua dipendenza: In pom.xml aggiungi la seguente dipendenza:
<dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j2.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j2.version}</version> </dependency> </dependencies>
avvio di primavera con Maven
Spring-boot è un framework comunemente usato per l'applicazione web. È dotato di supporto per la configurazione automatica di molte funzionalità, tra cui la registrazione di facciate come log4j2. Per aggiungere log4j2 al tuo progetto di avvio a molla, assicurati di escludere la facciata di registrazione predefinita: commons-logging. Log4j verrà utilizzato quando si registra solo la facciata su classpath.
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <!-- exclude spring-boot java commons logging in favour of log4j2 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- add log4j2 to spring-boot: --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
Si noti che non esiste alcuna versione in snippet sopra. È perché il progetto eredita la versione dal genitore. Assicurati di ereditare anche da spring-boot-starter-parent, aggiungendo:
https://riptutorial.com/it/home 3
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.3.RELEASE</version> </parent>
edera
In ivy.xml, aggiungi la seguente dipendenza:
<dependencies> <dependency org="org.apache.logging.log4j" name="log4j-api" rev="${log4j2.version}" /> <dependency org="org.apache.logging.log4j" name="log4j-core" rev="${log4j2.version}" /> </dependencies>
Gradle
Nel tuo file .gradle:
dependencies { compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.6.2' compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.6.2' }
Leggi Iniziare con log4j online: https://riptutorial.com/it/log4j/topic/5845/iniziare-con-log4j
https://riptutorial.com/it/home 4
Capitolo 2: configurazione
Examples
File di proprietà Log4j
Di seguito è riportato un file di configurazione per log4j. Log4j2 può utilizzare la stessa sintassi, ma esistono diverse classi di appender:
log4j.rootLogger=INFO, FOO ## ConsoleAppender log4j.appender.CA=org.apache.log4j.ConsoleAppender log4j.appender.CA.layout=org.apache.log4j.PatternLayout log4j.appender.CA.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n ## FileAppender log4j.appender.FOO=org.apache.log4j.RollingFileAppender log4j.appender.FOO.File=${catalina.home}/logs/app.log log4j.appender.FOO.Append=true log4j.appender.FOO.layout=org.apache.log4j.PatternLayout log4j.appender.FOO.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n ## attaching appender to specific package: log4j.logger.com.example.package=INFO, CA
La direttiva log4j.rootLogger definisce il livello di registro e l'appender per qualsiasi classe che non soddisfa i criteri del logger . Si noti che il name dell'appender è definito dopo la parola 'appender'.
Risolve problemi di runtime con la configurazione di log4j
Gli utenti possono affrontare il seguente problema:
log4j:WARN No appenders could be found for logger (dao.hsqlmanager). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Una ragione per cui questo può accadere è se il file log4j.properties o .xml non si trova all'interno del progetto stesso. (Questo può accadere quando spedite uno strumento, dove lo strumento / JAR si trova in una directory e tutta la configurazione è un'altra directory).
Sarà quindi necessario specificare il percorso per il file log4j.properties o .xml. Nell'utilità della riga di comando,
java -Dlog4j.configuration=file:///path/To/log4j.properties YourProject.jar
o se hai uno script per eseguire lo strumento puoi aggiungere
-Dlog4j.configuration=file:///path/To/log4j.properties
https://riptutorial.com/it/home 5
al punto in cui si esegue l'azione equivalente della versione da riga di comando. Non che log4j.configuration sia specificato in un formato URL, preceduto dal file:/// .
Leggi configurazione online: https://riptutorial.com/it/log4j/topic/7510/configurazione
https://riptutorial.com/it/home 6
Capitolo 3: log4j registra la personalizzazione
Examples
File di configurazione
Configurazione
Il file di configurazione di Log4j può trovarsi in uno di questi formati:
JSON•YAML•proprietà (file di testo)•XML•
Scoperta della configurazione
Log4j ispezionerà la proprietà di sistema log4j.configurationFile e, se impostato, tenterà di caricare la configurazione.
1.
Se non viene impostata alcuna proprietà di sistema, log4j cercherà log4j2-test.properties nel classpath.
2.
Se non viene trovato alcun file di questo tipo, log4j cercherà log4j2-test.yaml o log4j2-test.yml nel classpath.
3.
Se non viene trovato alcun file di questo tipo, log4j cercherà log4j2-test.json o log4j2-test.jsn nel classpath.
4.
Se non viene trovato alcun file di questo tipo, logj4 cercherà log4j2-test.xml nel classpath.5. Se non è possibile localizzare un file di test, log4j cercherà log4j2.properties sul classpath.6. Se non è possibile localizzare un file delle proprietà, log4j cercherà log4j2.yaml o log4j2.yml sul classpath.
7.
Se non è possibile localizzare un file YAML, log4j cercherà log4j2.json o log4j2.jsn sul classpath.
8.
Se non è possibile localizzare un file JSON, log4j tenterà di individuare log4j2.xml sul classpath.
9.
Se non è possibile localizzare alcun file di configurazione, verrà utilizzato DefaultConfiguration. Ciò causerà l'uscita della registrazione per andare alla console.
10.
Configurazione XML
Esempio XML
La configurazione seguente configura due appendici (output di registro). I primi registri sull'output di sistema standard (console) e gli altri registri su file. In questo esempio, la posizione del file può essere impostata staticamente nella configurazione ( file appender) o dinamicamente tramite la funzione di filtro <Property name="APPENDER"> ( <Property name="APPENDER"> ). Il file di accesso verrà
https://riptutorial.com/it/home 7
imballato di giorno. Il Conversion Pattern riga di registro è impostato come variabile.
<?xml version="1.0" encoding="UTF-8"?> <!-- 'status' sets log level for parsing configuration file itself --> <Configuration status="INFO"> <Properties> <!-- Sets variable PID, if it's not present in log4j context will take value as below: --> <Property name="PID">????</Property> <!-- Sets variable 'LOG_PATTERN', defining how log line will look like --> <Property name="LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{%X{usr}}{green} %clr{---}{faint}%clr{[%15.15t]}{faint} %clr{%-40.40c{1.}:%l}{cyan} %clr{:}{faint} %m%n%wEx</Property> <!-- LOG_DIR may be set by maven filtering feature: --> <Property name="LOG_DIR">@logging.path@</Property> <!-- APPENDER may be set by maven filtering feature, to set 'console' or 'file' appender: --> <Property name="APPENDER">@logging.default.appender@</Property> </Properties> <Appenders> <!-- Sets console output: --> <Console name="console" target="SYSTEM_OUT"> <PatternLayout pattern="${LOG_PATTERN}"/> </Console> <!-- Sets output to file, and names it 'file' --> <RollingRandomAccessFile append="true" fileName="${LOG_DIR}/log4j2.log" filePattern = "${LOG_DIR}/log4j2.%d{yyyy-MM-dd}.nr%i.log.gz" name="file"> <PatternLayout> <Pattern>${LOG_PATTERN}</Pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy /> </Policies> </RollingRandomAccessFile> </Appenders> <Loggers> <!-- Sets debug for Class 'com.example.package.Clazz', and attaches to file 'file' --> <Logger name="com.example.package.Clazz" level="debug"> <AppenderRef ref="file"/> </Logger> <!-- Sets 'info' for package 'org.springframework' --> <Logger name="org.springframework" level="info" /> <Root level="WARN"> <AppenderRef ref="${APPENDER}"/> </Root> </Loggers> </Configuration>
Leggi log4j registra la personalizzazione online: https://riptutorial.com/it/log4j/topic/6848/log4j-registra-la-personalizzazione
https://riptutorial.com/it/home 8
Capitolo 4: logger basati su log4j
introduzione
Pro e contro di diversi logger che possono essere utilizzati per creare un log in formato log4j da visualizzare utilizzando il visualizzatore Log4View.
Esaminerò 3 logger in questo articolo, Log4cxx, Log4cplus e Log4cpp.
Examples
log4cxx
https://logging.apache.org/log4cxx/
attualmente in fase di incubazione - non esiste una versione ufficiale•aggiornamenti / correzioni di bug una volta negli ultimi 12 anni, l'ultima versione è stata del 2008
•
l'utente può selezionare diversi LogLevel: TRACE, DEBUG, INFO, WARN, ERROR e FATAL•logger gerarchici•è possibile effettuare il login in modo asincrono•supporta più appendici•l'utente può selezionare per abilitare o disabilitare il logger•il log può essere inviato a target di output diversi e multipli•formati di output selezionati dall'utente•Ben documentato•è concesso in licenza con la licenza Apache, una licenza open source certificata da Open Source Initiative
•
Log4cplus
https://sourceforge.net/projects/log4cplus/
aggiornamenti / correzioni di bug - l'ultima versione era gennaio 2016•l'utente può selezionare selezionare diversi LogLevel - logger gerarchici TRACE, DEBUG, INFO, WARN, ERROR e FATAL
•
supporta applicazioni multi-threaded ma non è sicuro da utilizzare dai gestori di segnali asincroni
•
formato di output selezionato dall'utente: SimpleLayout, PatternLayout, TTCCLayout•supporta più logger•non ben documentato•
è concesso in licenza con Apache License V2.0•
Log4cpp
https://riptutorial.com/it/home 9
https://sourceforge.net/projects/log4cpp/
correzioni di bug sono circa una volta all'anno, l'ultima versione è stata aprile 2015•supporta applicazioni multi-thread • non esiste documentazione chiara•è rilasciato sotto licenza GNU Lesser General Public License (LGPL) a partire dalla versione 0.2.1, prima che fosse rilasciato sotto licenza GPL.
•
Leggi logger basati su log4j online: https://riptutorial.com/it/log4j/topic/10570/logger-basati-su-log4j
https://riptutorial.com/it/home 10
Titoli di coda
S. No
Capitoli Contributors
1 Iniziare con log4j Augustin Ghauratto, bn., Community, Michaël K.
2 configurazione Augustin Ghauratto, Ishnark
3log4j registra la personalizzazione
Augustin Ghauratto, whrrgarbl
4 logger basati su log4j Merav Kochavi
https://riptutorial.com/it/home 11