log4jConfigurazione XML 7 Esempio XML 7 Capitolo 4: logger basati su log4j 9 introduzione 9 Examples...

13
log4j #log4j

Transcript of log4jConfigurazione XML 7 Esempio XML 7 Capitolo 4: logger basati su log4j 9 introduzione 9 Examples...

Page 1: log4jConfigurazione 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

log4j

#log4j

Page 2: log4jConfigurazione 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

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

Page 3: log4jConfigurazione 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

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

Page 4: log4jConfigurazione 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

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

Page 5: log4jConfigurazione 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

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

Page 6: log4jConfigurazione 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

<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

Page 7: log4jConfigurazione 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

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

Page 8: log4jConfigurazione 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

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

Page 9: log4jConfigurazione 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

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

Page 10: log4jConfigurazione 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

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

Page 11: log4jConfigurazione 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

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

Page 12: log4jConfigurazione 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

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