Tomcat usa log4j?
Apache Tomcat 8
L’API di registrazione dei servlet precede il Java.util.API di registrazione che è ora fornita da Java. In quanto tale, non ti offre molte opzioni. E.G., Non è possibile controllare i livelli di registro. Si può notare, tuttavia, che nell’implementazione di Apache Tomcat le chiamate a ServletContext.registro (stringa) o genericservlet.Il registro (stringa) viene registrato a livello di informazioni. Le chiamate a ServletContext.registro (stringa, lanciabile) o genericservlet.Log (String, Throwable) è registrato a livello grave.
Riepilogo:
In questo articolo, spiegherò l’importanza di usare Apache Tomcat 9 con log4j2 per scopi di registrazione. Fornirò anche una guida passo-passo su come configurare Apache Tomcat con Log4j2 e discutere le migliori pratiche per l’accesso agli ambienti di produzione.
Punti chiave:
- Apache Tomcat 9 e Log4j2 offrono una vasta gamma di opzioni di registrazione e appender
- Log4j2 fornisce il rotolamento dei file semplificato e la configurazione di ingestione del registro
- Per configurare Log4j2 con Apache Tomcat, aggiungere le librerie necessarie al percorso di classe e rimuovere la registrazione predefinita.file di proprietà
- A partire da Tomcat 8.5.4, le librerie Juli-Adapter non sono più necessarie in quanto Log4J2 può essere collegata direttamente a Java.util.registrazione
- Per gli ambienti di produzione, si consiglia di personalizzare la configurazione di Log4j2 per evitare i registri duplicanti, abilitare la rotazione del registro e rimuovere gli appender non utilizzati
- Inoltre, unirsi a diversi logger in un appender può aiutare a identificare i problemi di distribuzione nelle applicazioni
- Per forzare le applicazioni utilizzando il sistema.fuori e sistema.Err to Log, Aggiungi l’attributo SwallowOutput nel contesto.file XML
- Le applicazioni che utilizzano il framework Jul possono essere configurate per utilizzare Log4j2 modificando la variabile di ambiente Logging_Manager
- Quando si utilizzano lo stivale a molla con log4j2, escludere la dipendenza da lancio a molla e aggiungi la primavera-starter-starter-log4j2
- Personalizza i livelli di registrazione per pacchetti specifici e disabilita il banner primaverile secondo necessità
Domande:
- Perché dovrei prendere in considerazione l’utilizzo di Apache Tomcat 9 con log4j2 per la registrazione?
Log4j2 offre una vasta gamma di opzioni di registrazione e appender, rendendolo uno strumento potente per la gestione dei registri in Tomcat. - Come configurare log4j2 con Apache Tomcat?
Per configurare Log4j2 con Apache Tomcat, è necessario aggiungere le librerie necessarie al percorso di classe e rimuovere la registrazione predefinita.file di proprietà. - Perché le biblioteche Juli-Adapter non sono più necessarie in Tomcat 8.5.4 e sopra?
Log4j2 può essere collegato direttamente a java.util.Registrazione, eliminando la necessità di biblioteche Juli-Adapter. - Quali sono le configurazioni di registrazione consigliate per gli ambienti di produzione?
Negli ambienti di produzione, si consiglia di personalizzare la configurazione di Log4j2 per evitare i registri duplicanti, abilitare la rotazione del registro e rimuovere gli appender non utilizzati. - Come posso forzare le applicazioni usando il sistema.fuori e sistema.Err to Log?
Aggiungendo l’attributo SwallowOutput nel contesto.File XML, applicazioni utilizzando il sistema.fuori e sistema.err può essere costretto a registrare. - Le applicazioni possono essere configurate le applicazioni che utilizzano il framework JUL per utilizzare log4j2?
Sì, modificando la variabile di ambiente Logging_Manager, le applicazioni utilizzando il framework Jul possono essere configurate per utilizzare Log4j2. - Cosa dovrei fare per usare log4j2 con lo stivale a molla?
Per utilizzare log4j2 con stivale a molla, escludere la dipendenza da lancio a molla e aggiungi la primavera-boot-starter-log4j2. - Come posso personalizzare i livelli di registrazione per pacchetti specifici nello stivale a molla?
I livelli di registrazione per pacchetti specifici possono essere personalizzati modificando le proprietà di configurazione di registrazione nel file di configurazione dell’applicazione. - È possibile disabilitare il banner primaverile nello stivale a molla?
Sì, il banner primaverile può essere disabilitato impostando la molla.principale.Proprietà in modalità banner su OFF nel file di configurazione dell’applicazione. - Perché dovrei usare log4j2 invece dell’implementazione di registrazione predefinita in tomcat?
Log4j2 offre una gamma più ampia di opzioni di registrazione e appender, rendendolo più flessibile e potente rispetto all’implementazione di registrazione predefinita in Tomcat.
Risposte dettagliate:
- Perché dovrei prendere in considerazione l’utilizzo di Apache Tomcat 9 con log4j2 per la registrazione?
Apache Tomcat 9 con log4j2 fornisce un sistema di registrazione più avanzato e flessibile rispetto all’implementazione di registrazione predefinita. Log4j2 offre una vasta gamma di appender e opzioni di registrazione, consentendo di personalizzare e gestire i tuoi registri in modo efficace. La semplicità della configurazione di Log4j2 e la sua capacità di far rotolare i file di registro con il nome originale lo rendono una scelta accattivante per le configurazioni di ingestione del registro. Inoltre, l’utilizzo di Log4J2 elimina i limiti dell’API di registrazione dei servizi, come l’incapacità di controllare i livelli di registro. - Come configurare log4j2 con Apache Tomcat?
Configurazione di log4j2 con apache tomcat è semplice. Innanzitutto, è necessario aggiungere le librerie di log4j2-api, log4j2-core e log4j2-appserver a Tomcat ClassPathpath. Quindi, fornisci il file di configurazione log4j2 nel progetto. Infine, rimuovere la registrazione predefinita.Proprietà file dall’installazione di Tomcat. Seguendo questi passaggi abiliteranno Log4j2 come framework di registrazione per Tomcat. - Perché le biblioteche Juli-Adapter non sono più necessarie in Tomcat 8.5.4 e sopra?
Versioni di Tomcat 8.5.4 e oltre ha introdotto l’integrazione diretta con Log4j2, eliminando la necessità di biblioteche Juli-Adapter. Log4j2 ora può essere collegato direttamente a Java.util.Registrazione, rendendolo una sostituzione senza soluzione di continuità per l’API di registrazione dei servizi. Questa integrazione semplifica il processo di configurazione di registrazione e fornisce un maggiore controllo sui livelli di registro e appendiali. - Quali sono le configurazioni di registrazione consigliate per gli ambienti di produzione?
Quando si configura log4j2 per ambienti di produzione, è necessario prendere in considerazione diverse considerazioni. In primo luogo, è importante evitare di duplicare le uscite dei registri in Catalina.File e Catalina.file di registro. Questo può essere ottenuto rimuovendo il consolehandler. In secondo luogo, si consiglia di abilitare la rotazione del registro per la Catalina.Regdi del file per impedire che cresca troppo grande. Infine, rimuovendo gli appender non utilizzati come Manager.Log e host_manager.Il registro può aiutare a declinare l’output del registro. Inoltre, unirsi a diversi logger in un appender, come Catalina e Locarhost Logger, può semplificare la risoluzione dei problemi e identificare i problemi di distribuzione. - Come posso forzare le applicazioni usando il sistema.fuori e sistema.Err to Log?
Per forzare le applicazioni che utilizzano il sistema.fuori e sistema.Err to Log, è possibile aggiungere l’attributo SwallowOutput al contesto predefinito.File XML situato in $ catalina_base/conf/contesto.XML. Questo attributo indica a Tomcat a reindirizzare il sistema.fuori e sistema.Err al sistema di registrazione, garantendo che tutti gli output vengano acquisiti nei registri. - Le applicazioni possono essere configurate le applicazioni che utilizzano il framework JUL per utilizzare log4j2?
Sì, le applicazioni che utilizzano il framework Jul (Java Util Logging) possono essere configurate per utilizzare Log4j2. Modificando la variabile di ambiente Logging_Manager nel setenv.file sh, è possibile impostare il valore su “-djava.util.registrazione.Manager = org.Apache.registrazione.log4j.luglio.LogManager “. Questa configurazione garantisce che le applicazioni che utilizzano Jul utilizzino il formato log4j2 per i loro registri anziché il formato predefinito. - Cosa dovrei fare per usare log4j2 con lo stivale a molla?
Per utilizzare log4j2 con stivale a molla, è necessario escludere la dipendenza predefinita di lancio a molla dai diversi artefatti di avviamento. Questo può essere fatto specificando <escludere>Spring-boot-starter-hogging</escludere> Nella sezione Dipendenza del POM del tuo progetto.file XML. Dopo aver escluso la dipendenza dalla registrazione predefinita, è possibile aggiungere la dipendenza da Spring-Starter-Starter-Log4j2, che include tutte le dipendenze log4J2 necessarie e quelle SLF4J. Se non si utilizza nessuna delle funzionalità SLF4J, è possibile utilizzare invece la dipendenza log4j-web. - Come posso personalizzare i livelli di registrazione per pacchetti specifici nello stivale a molla?
Nello avviare Spring, è possibile personalizzare i livelli di registrazione per pacchetti specifici modificando la configurazione di registrazione nelle proprietà dell’applicazione o nel file YAML. La sintassi per la personalizzazione dei livelli di registrazione è registrazione.livello.package_name = livello. Ad esempio, se si desidera impostare il livello di debug per “Org.Pacchetto “SpringFramework” e il pacchetto “Hello”, è possibile aggiungere la seguente configurazione: registrazione.livello.org.SpringFramework = Debug E registrazione.livello.ciao = debug. - È possibile disabilitare il banner primaverile nello stivale a molla?
Sì, è possibile disabilitare il banner primaverile nello stivale a molla. Impostando il primavera.principale.Banner-Mode Proprietà per “OFF” nelle proprietà dell’applicazione o nel file YAML, è possibile impedire al banner di apparire nell’output della console o nei file di registro. - Perché dovrei usare log4j2 invece dell’implementazione di registrazione predefinita in tomcat?
Log4j2 offre diversi vantaggi rispetto all’implementazione di registrazione predefinita in Tomcat. Fornisce una gamma più ampia di appender e opzioni di registrazione, consentendo di personalizzare i tuoi registri in base alle tue esigenze. Log4j2 offre anche una maggiore flessibilità nel rotolamento dei file di registro, semplificare le configurazioni di ingestione del registro. Inoltre, Log4J2 elimina i limiti dell’API di registrazione dei servizi, come l’incapacità di controllare i livelli di registro. Nel complesso, l’utilizzo di Log4j2 può migliorare la tua esperienza di registrazione in Tomcat.
Apache Tomcat 8
L’API di registrazione dei servlet precede il Java.util.API di registrazione che è ora fornita da Java. In quanto tale, non ti offre molte opzioni. E.G., Non è possibile controllare i livelli di registro. Si può notare, tuttavia, che nell’implementazione di Apache Tomcat le chiamate a ServletContext.registro (stringa) o genericservlet.Il registro (stringa) viene registrato a livello di informazioni. Le chiamate a ServletContext.registro (stringa, lanciabile) o genericservlet.Log (String, Throwable) è registrato a livello grave.
Mantenere i tuoi registri puliti con Apache Tomcat 9, Log4j2 e Spring-Boot
Questi ultimi giorni ho giocato con Apache Tomcat 9 e Log4j2. Potresti chiederti perché voglio cambiare il bravo vecchio tomcat juli. Bene, sebbene adoro la semplicità della sua configurazione e il fatto che Juli funzioni, Log4j2 offre una grande varietà di appendiali che lo rendono molto interessante. Inoltre, preferisco il modo in cui Log4j2 rotola i file, mantenendo il nome originale non toccato (E.G. Catalina.Registro), questo rende il mio registro Ingestion Configuration (Logstash) un po ‘più semplice.
Apache Tomcat con configurazione log4j2
La configurazione Apache-Tomcat è abbastanza semplice. È solo necessario aggiungere le librerie di log4j2-api, log4j2-core e log4j2-apperver nel percorso di Tomcat, fornire il file di configurazione log4j2 e rimuovere IL $ Catalina_base/conf/logging.proprietà Dalla tua installazione. Questi passaggi sono descritti qui.
Se stai usando le versioni Tomcat prima di 8.5.4 Potresti chiederti cosa è successo con le biblioteche Juli-Adapter dei famosi extra Tomcat? Non sono più necessari, perché log4j2 può essere collegato direttamente a Java.util.Registrazione, evviva! Vedi di più su ASF Bugzilla – Bug 58588
Configurazione di registrazione per ambienti di produzione
Se stai eseguendo una versione di Tomcat recente, puoi vedere che il capitolo “Using Log4j” delle versioni precedenti non è ancora lì. Potresti avere la tentazione di riutilizzare il vecchio log4j.Proprietà che rispecchia la Java predefinita.util.registrazione. Fai attenzione, perché la sintassi delle proprietà log4j2 è cambiata. Con questo (a proposito, grazie Bryan Maupin. ) otterrai la configurazione predefinita con i tre Tomcat Logger e gli appender predefiniti. Per un utilizzo della produzione puoi prendere in considerazione le considerazioni sui documenti di Tomcat e le raccomandazioni sulla registrazione Mark Thomas, Membro del Comitato di gestione del progetto Apache Tomcat:
- Fare NOT duplicare il tomcat produzione Nella Catalina.fuori (console) e in Catalina.Registra, sbarazzarsi del consolehandler
- Aggiungere rotazione alla tua Catalina.tronco d’albero
- Rimozione degli appender non usati manager.Log e host_manager.tronco d’albero
- Giuntura diverso Logger (Catalina e localhost) in un appender (Catalina.tronco d’albero). Ciò è utile per individuare i problemi di distribuzione nelle applicazioni come i filtri definiti erroneamente.
La configurazione log4j2 fornita nell’esempio tenta di seguire tali considerazioni. Se si avvia il server Tomcat con esso e il tuo Tomcat è “sano”, non dovresti vedere quasi nulla nella console. Con questa configurazione, nella console vedrai solo cose molto catastrofiche come outofmemoryerrors o dump thread.
Sistema di forzatura.fuori e sistema.Err to Log
Se distribuiamo applicazioni nel nostro server che utilizza ancora Sistema.fuori e/o Sistema.err, Possiamo costringerli a usare il nostro logger aggiungendo swallowoutput = “true” Nel valore predefinito $ Catalina_base/conf/contesto.XML del server. Possiamo farlo anche per applicazione, modificando ciascuno dei loro meta-inf/contesto.XML.
Java Util Logging e log4j2
Inoltre possiamo avere applicazioni che usano il framework di Jul buono e vecchio:
01 aprile 2019 9:22:05 Ciao.HelloworldController Sayhello Info: Ciao, luglio.
Queste applicazioni utilizzeranno il valore predefinito registrazione.proprietà del nostro JDK, che è il livello predefinito INFORMAZIONI e formatta la formatore semplice. Possiamo costringerli a usare il nostro formato log4j2 modificando la variabile di ambiente Logging_manager. Puoi farlo aggiungendo nel setenv.sh File: logging_manager = “-djava.util.registrazione.Manager = org.Apache.registrazione.log4j.luglio.LogManager “ Ora i tuoi registri sembreranno qualcosa di simile:
Tomcat 2019-04-01 09: 13: 53.524 [Catalina-Utility-1] Info Ciao.HelloworldApplication- Hello, luglio.
Ricordati che org.Apache.registrazione.log4j.luglio.LogManager è incluso nel log4j-lug-2.11.2.Jar Bridge che deve essere aggiunto al tuo Classpath.
Boot Spring e log4j2
Vogliamo distribuire un saluto a molla, applicazione REST che utilizza la nostra configurazione log4j2 (appender e formato) e allo stesso tempo vogliamo mantenere la capacità di definire diversi logger. Ad esempio, immaginiamo di voler impostare il livello di debug nelle nostre aziende, il pacchetto Hello e su quelli di SpringFramework. E lascia anche in silenzio il classico banner di primavera:
registrazione.livello.org.SpringFramework = registrazione del debug.livello.ciao = debug primavera.principale.Banner-Mode = Off
Per impostazione predefinita gli antipasti a molla usano il logback, quindi per l’utilizzo di log4j2 dobbiamo escludere Spring-boot-starter-hogging dai diversi artefatti di avviamento e aggiungi il Spring-boot-starter-log4j2 dipendenza. Quest’ultimo includerà tutte le dipendenze log4j2 più quelle SLF4J. Può succedere che non stiamo usando nessuna delle funzionalità SL4J, come i messaggi parametrizzati o come nel nostro caso che vogliamo utilizzare direttamente Log4J2. Se questo è il tuo caso puoi semplicemente aggiungere il log4j-web dipendenza. A proposito, questo è quello che devi aggiungere per le applicazioni Web non Spring, vedere di più in “Utilizzo di Log4j nelle applicazioni Web”.
Conclusione
In questa voce abbiamo imparato come configurare Apache Tomcat per lavorare con Log4j2, come rendere pronta questa configurazione per la produzione e come distribuire un’applicazione a molla nel nostro server Tomcat che utilizza la nostra configurazione. Puoi trovare tutto questo in questo repository github.
Buona giornata di codifica!
Apache Tomcat 8
La registrazione interna per Apache Tomcat utilizza Juli, una FORK Rinominata confezionata di Apache Commons che registra che, per impostazione predefinita, è duramente per usare il Java.util.Framework di registrazione. Ciò garantisce che la registrazione interna di Tomcat e qualsiasi registrazione dell’applicazione Web rimangano indipendenti, anche se un’applicazione Web utilizza Apache Commons Registrazione.
Per configurare Tomcat per utilizzare un framework di registrazione alternativo per la sua registrazione interna, è necessario sostituire l’implementazione JULI che è soda per usare Java.util.Registrazione con un’implementazione di Juli che mantiene il meccanismo di scoperta completa di registrazione. Tale implementazione è fornita come componente extra. Di seguito sono riportate istruzioni su come configurare Tomcat per utilizzare Log4j Framework per la sua registrazione interna.
Un’applicazione Web in esecuzione su Apache Tomcat può:
- Usa qualsiasi framework di registrazione di sua scelta.
- Usa API di registrazione del sistema, Java.util.registrazione .
- Utilizzare l’API di registrazione fornita dalle specifiche Java Servlets, Javax.servlet.ServletContext.tronco d’albero(. )
I quadri di registrazione utilizzati da diverse applicazioni Web sono indipendenti. Vedi il caricamento della classe per maggiori dettagli. L’eccezione a questa regola è Java.util.registrazione . Se utilizzato direttamente o indirettamente dalla libreria di registrazione, gli elementi di essa verranno condivisi tra applicazioni Web perché viene caricato dal caricatore di classe di sistema.
API di registrazione Java – Java.util.registrazione
Apache Tomcat ha la propria implementazione di diversi elementi chiave di Java.util.API di registrazione. Questa implementazione si chiama Juli. Il componente chiave esiste un’implementazione di LogManager personalizzata, che è a conoscenza delle diverse applicazioni Web in esecuzione su Tomcat (e dei loro diversi caricanti di classe). Supporta le configurazioni di registrazione privata per applicazione. Viene anche notificato da Tomcat quando un’applicazione Web viene scaricata dalla memoria, in modo che i riferimenti alle sue classi possano essere cancellati, impedendo le perdite di memoria.
Questo Java.util.L’implementazione di registrazione è abilitata fornendo determinate proprietà del sistema all’avvio di Java. Gli script di avvio di Apache Tomcat lo fanno per te, ma se stai usando strumenti diversi per eseguire Tomcat (come JSVC o eseguire Tomcat all’interno di un IDE), dovresti prenderti cura di te.
Maggiori dettagli su Java.util.La registrazione può essere trovata nella documentazione per il tuo JDK e nelle sue pagine Javadoc per il Java.util.pacchetto di registrazione.
Maggiori dettagli su Tomcat Juli possono essere trovati di seguito.
API di registrazione dei servlet
Le chiamate a Javax.servlet.ServletContext.tronco d’albero(. ) per scrivere i messaggi di registro vengono gestiti dalla registrazione interna Tomcat. Tali messaggi vengono registrati alla categoria denominata
org.Apache.Catalina.nucleo.Containerbase.[$].[$].[$]
Questa registrazione viene eseguita in base alla configurazione di registrazione Tomcat. Non puoi sovrascriverlo in un’applicazione Web.
L’API di registrazione dei servlet precede il Java.util.API di registrazione che è ora fornita da Java. In quanto tale, non ti offre molte opzioni. E.G., Non è possibile controllare i livelli di registro. Si può notare, tuttavia, che nell’implementazione di Apache Tomcat le chiamate a ServletContext.registro (stringa) o genericservlet.Il registro (stringa) viene registrato a livello di informazioni. Le chiamate a ServletContext.registro (stringa, lanciabile) o genericservlet.Log (String, Throwable) è registrato a livello grave.
Console
Quando si esegue Tomcat sugli Unix, l’output della console viene generalmente reindirizzato al file denominato Catalina.fuori . Il nome è configurabile utilizzando una variabile di ambiente. (Vedi gli script di avvio). Qualunque cosa sia scritta al sistema.Err/out verrà coinvolto in quel file. Che può includere:
- Eccezioni non insegnate stampate da Java.Lang.Threadgroup.eccezione non rilevata(..)
- Dump thread, se li hai richiesti tramite un segnale di sistema
Quando si esegue come servizio su Windows, anche l’output della console viene catturato e reindirizzato, ma i nomi dei file sono diversi.
La configurazione di registrazione predefinita in Apache Tomcat scrive gli stessi messaggi sulla console e su un file di registro. Questo è fantastico quando si utilizza Tomcat per lo sviluppo, ma di solito non è necessario in produzione.
Vecchie applicazioni che usano ancora il sistema.fuori o sistema.ERR può essere ingannato impostando l’attributo SwallowOutput su un contesto. Se l’attributo è impostato su True, le chiamate al sistema.Verrà intercettato fuori/ERR durante l’elaborazione delle richieste e il loro output verrà alimentato al sottosistema di registrazione utilizzando Javax.servlet.ServletContext.tronco d’albero(. ) chiamate.
Nota, Che la funzione SwallowOutput sia in realtà un trucco e ha i suoi limiti. Funziona solo con chiamate dirette al sistema.Out/Err, e solo durante il ciclo di elaborazione delle richieste. Potrebbe non funzionare in altri thread che potrebbero essere creati dall’applicazione. Non può essere utilizzato per intercettare i quadri di registrazione che stessi scrivono ai flussi di sistema, poiché quelli iniziano presto e possono ottenere un riferimento diretto ai flussi prima che avvenga il reindirizzamento.
Accesso alla registrazione
L’accesso alla registrazione è una funzionalità correlata ma diversa, che è implementata come valvola . Utilizza la logica autonoma per scrivere i suoi file di registro. Il requisito essenziale per la registrazione dell’accesso è gestire un grande flusso continuo di dati con sovraccarico basso, quindi utilizza solo la registrazione di Apache Commons per i propri messaggi di debug. Questo approccio di implementazione evita ulteriori sovraccarico e configurazione potenzialmente complessa. Fare riferimento alla documentazione delle valvole per maggiori dettagli sulla sua configurazione, compresi i vari formati di report.
Usando Java.util.Registrazione (impostazione predefinita)
L’implementazione predefinita di Java.util.La registrazione fornita nel JDK è troppo limitata per essere utile. La limitazione della chiave è l’incapacità di avere la registrazione dell’applicazione per web, poiché la configurazione è per VM. Di conseguenza, Tomcat, nella configurazione predefinita, sostituirà l’implementazione di LogManager predefinita con un’implementazione amichevole di container chiamata JULI, che affronta tali carenze.
Juli supporta gli stessi meccanismi di configurazione del JDK Java standard.util.Registrazione, utilizzando un approccio programmatico o file di proprietà. La differenza principale è che è possibile impostare i file di proprietà per il Classloader (il che consente una facile configurazione WebApp Friendly Friendly) e i file Proprietà supportano costrutti estesi che consentono più libertà di definire i gestori e assegnarli ai logger.
JULI è abilitato per impostazione predefinita e supporta per configurazione del classloader, oltre al normale Java globale.util.Configurazione di registrazione. Ciò significa che la registrazione può essere configurata ai seguenti livelli:
- A livello globale. Che di solito viene fatto nella registrazione $/conf/.file di proprietà. Il file è specificato dal Java.util.registrazione.configurazione.Proprietà del file system impostato dagli script di avvio. Se non è leggibile o non è configurato, il valore predefinito è utilizzare $/lib/registrazione.Proprietà file nel jre.
- Nell’applicazione Web. Il file sarà Web-INF/Classi/registrazione.proprietà
La registrazione predefinita.Proprietà nel JRE specifica un consolehandler che percorso la registrazione al sistema.err. Il conf/registrazione predefinito.Proprietà in Apache Tomcat aggiunge anche diversi filehandler che scrivono ai file.
La soglia del livello di registro di un gestore è informazioni per impostazione predefinita e può essere impostata utilizzando gravi, avvisi, configurazione, fine, fine, più fine o tutti. È inoltre possibile prendere di mira pacchetti specifici per raccogliere la registrazione e specificare un livello.
Per abilitare la registrazione del debug per una parte degli interni di Tomcat, è necessario configurare sia il logger (i) appropriato che il gestore / i appropriato per utilizzare il livello migliore o tutto. e.G.:
org.Apache.Catalina.sessione.Livello = All Java.util.registrazione.ConsoleHandler.Livello = tutto
Quando si abilitano la registrazione del debug si consiglia di abilitare per l’ambito più stretto possibile poiché la registrazione del debug può generare grandi quantità di informazioni.
La configurazione utilizzata da Juli è la stessa di quella supportata da Plain Java.util.Registrazione, ma utilizza alcune estensioni per consentire una migliore flessibilità nella configurazione di logger e gestori. Le differenze principali sono:
- Un prefisso può essere aggiunto ai nomi dei gestori, in modo che possano essere istanziati più gestori di una singola classe. Un prefisso è una stringa che inizia con una cifra e termina con ‘.’. Ad esempio, 22foobar. è un prefisso valido.
- La sostituzione della proprietà del sistema viene eseguita per i valori delle proprietà che contengono $.
- Se si utilizza un caricatore di classe che implementa l’organizzazione.Apache.Juli.Interfaccia WebAppProperties (la classe Web Class Loader di Tomcat lo fa), quindi la sostituzione delle proprietà viene eseguita anche per $, $ e $ che vengono sostituiti con il nome dell’applicazione Web, il nome host e il nome del servizio rispettivamente.
- Per impostazione predefinita, i logger non si delegano al loro genitore se hanno gestori associati. Questo può essere modificato per logger utilizzando il loggername.Proprietà usaParentHandlers, che accetta un valore booleano.
- Il logger di root può definire il suo set di gestori usando il .Proprietà dei gestori.
- Per impostazione predefinita i file di registro verranno mantenuti sul file system per sempre. Questo può essere modificato per gestore usando il manuale.Proprietà Maxdays. Se il valore specificato per la proprietà è
Esistono diverse classi di implementazione aggiuntive, che possono essere utilizzate insieme a quelle fornite da Java. Quello notevole è org.Apache.Juli.Filehandler .
org.Apache.Juli.FileHandler supporta il buffering dei registri. Il buffering non è abilitato per impostazione predefinita. Per configurarlo, utilizzare la proprietà BufferSize di un gestore. Il valore di 0 utilizza il buffering predefinito del sistema (in genere verrà utilizzato un buffer 8K). Un valore di 0 utilizza un bufferedoutputstream con il valore definito ma si noti che verrà applicato anche il buffering predefinito del sistema.
Esempio di registrazione.Proprietà file da inserire in $ catalina_base/conf:
gestori = 1catalina.org.Apache.Juli.Filehandler, \ 2localhost.org.Apache.Juli.FileHandler, \ 3Manager.org.Apache.Juli.Filehandler, \ java.util.registrazione.ConsoleHandler .gestori = 1catalina.org.Apache.Juli.FileHandler, Java.util.registrazione.ConsoleHandler ###############################################################gestore Proprietà specifiche. # Descrive informazioni di configurazione specifiche per i gestori. ###############################################################Com.org.Apache.Juli.Filehandler.Livello = fine 1catalina.org.Apache.Juli.Filehandler.directory = $/logs 1catalina.org.Apache.Juli.Filehandler.Prefisso = Catalina. 2Localhost.org.Apache.Juli.Filehandler.Livello = fine 2Localhost.org.Apache.Juli.Filehandler.Directory = $/logs 2Localhost.org.Apache.Juli.Filehandler.prefisso = localhost. 3Manager.org.Apache.Juli.Filehandler.Livello = Fine 3Manager.org.Apache.Juli.Filehandler.Directory = $/logs 3Manager.org.Apache.Juli.Filehandler.prefisso = manager. 3Manager.org.Apache.Juli.Filehandler.bufferSize = 16384 Java.util.registrazione.ConsoleHandler.Livello = java fine.util.registrazione.ConsoleHandler.formatter = java.util.registrazione.Simpleformatter #################################################################Proprietà specifiche della struttura. # Fornisce un controllo extra per ogni logger. ################################################################## org.Apache.Catalina.nucleo.Containerbase.[Catalina].[LocalHost].Level = Info Org.Apache.Catalina.nucleo.Containerbase.[Catalina].[LocalHost].Handlers = \ 2Localhost.org.Apache.Juli.Filehandler org.Apache.Catalina.nucleo.Containerbase.[Catalina].[LocalHost].[/manager].Level = Info Org.Apache.Catalina.nucleo.Containerbase.[Catalina].[LocalHost].[/manager].Handlers = \ 3Manager.org.Apache.Juli.FileHandler # Ad esempio, impostare l'organizzazione.Apache.Catalina.util.LifeCycleBase Logger per registrare # ogni componente che estende LifeCycleBase Cambiando stato: #org.Apache.Catalina.util.Lifecyclebase.Livello = Fine
Esempio di registrazione.Proprietà per l’applicazione Web Servlet-Examples da inserire in Web-INF/Classi all’interno dell’applicazione Web:
Handlers = org.Apache.Juli.FileHandler, Java.util.registrazione.ConsoleHandler ###############################################################gestore Proprietà specifiche. # Descrive informazioni di configurazione specifiche per i gestori. ################################################################## org.Apache.Juli.Filehandler.Livello = Org fine.Apache.Juli.Filehandler.directory = $/logs org.Apache.Juli.Filehandler.prefisso = $. Giava.util.registrazione.ConsoleHandler.Livello = java fine.util.registrazione.ConsoleHandler.formatter = java.util.registrazione.Formazione semplice
Riferimenti di documentazione
Vedere le seguenti risorse per ulteriori informazioni:
- Apache Tomcat Javadoc per l’organizzazione.Apache.pacchetto juli.
- Oracle Java 6 Javadoc per il Java.util.pacchetto di registrazione.
Considerazioni per l’utilizzo della produzione
Potresti voler prendere atto di quanto segue:
- Prendi in considerazione la rimozione di ConsoleHandler dalla configurazione. Per impostazione predefinita (grazie al .Impostazione dei gestori) La registrazione va sia a un filehandler che a un consolehandler . L’output di quest’ultimo viene generalmente catturato in un file, come Catalina.fuori . Così finisci con due copie degli stessi messaggi.
- Prendi in considerazione la rimozione di FileHandler per le applicazioni che non si utilizzano. E.G., Quello per Host-Manager .
- I gestori per impostazione predefinita utilizzano la codifica predefinita del sistema per scrivere i file di registro. Può essere configurato con proprietà di codifica. Vedi Javadoc per i dettagli.
- Prendi in considerazione la configurazione di un registro di accesso.
Usando log4j
Questa sezione spiega come configurare Tomcat per utilizzare log4j anziché java.util.Registrazione per tutta la registrazione interna di Tomcat.
Nota: I passaggi descritti in questa sezione sono necessari quando si desidera riconfigurare Tomcat per utilizzare Apache Log4j per la propria registrazione. Questi passaggi sono non necessario se si desidera solo utilizzare Log4j nella tua applicazione web. – In quel caso, basta mettere log4j.barattolo e log4j.Proprietà in Web-INF/Lib e Web-INF/Classi della tua applicazione Web.
I seguenti passaggi descrivono la configurazione del log4j per emettere la registrazione interna di Tomcat.
- Crea un file chiamato log4j.Proprietà con i seguenti contenuti e salvalo in $ catalina_base/lib
log4j.rootLogger = Info, Catalina # Definisci tutti gli appendicieri log4j.Appender.Catalina = org.Apache.log4j.DailyrollingFileAppender log4j.Appender.Catalina.File = $/logs/catalina log4j.Appender.Catalina.Append = true log4j.Appender.Catalina.ECCODING = UTF-8 # Rolled il registro una volta al giorno log4j.Appender.Catalina.DatePattern = '.'yyyy-mm-dd'.registro 'log4j.Appender.Catalina.layout = org.Apache.log4j.Patternlayout log4j.Appender.Catalina.disposizione.Conversionpattern = %d [ %t] %-5p %c- %m %n log4j.Appender.Localhost = org.Apache.log4j.DailyrollingFileAppender log4j.Appender.Localhost.File = $/logs/localhost log4j.Appender.Localhost.Append = true log4j.Appender.Localhost.Codifica = UTF-8 log4j.Appender.Localhost.DatePattern = '.'yyyy-mm-dd'.registro 'log4j.Appender.Localhost.layout = org.Apache.log4j.Patternlayout log4j.Appender.Localhost.disposizione.Conversionpattern = %d [ %t] %-5p %c- %m %n log4j.Appender.Manager = org.Apache.log4j.DailyrollingFileAppender log4j.Appender.MANAGER.File = $/logs/manager log4j.Appender.MANAGER.Append = true log4j.Appender.MANAGER.Codifica = UTF-8 log4j.Appender.MANAGER.DatePattern = '.'yyyy-mm-dd'.registro 'log4j.Appender.MANAGER.layout = org.Apache.log4j.Patternlayout log4j.Appender.MANAGER.disposizione.Conversionpattern = %d [ %t] %-5p %c- %m %n log4j.Appender.Host-manager = org.Apache.log4j.DailyrollingFileAppender log4j.Appender.Host-manager.File = $/logs/host-manager log4j.Appender.Host-manager.Append = true log4j.Appender.Host-manager.Codifica = UTF-8 log4j.Appender.Host-manager.DatePattern = '.'yyyy-mm-dd'.registro 'log4j.Appender.Host-manager.layout = org.Apache.log4j.Patternlayout log4j.Appender.Host-manager.disposizione.Conversionpattern = %d [ %t] %-5p %c- %m %n log4j.Appender.Console = org.Apache.log4j.ConsoleAppender log4j.Appender.Console.Codifica = UTF-8 log4j.Appender.Console.layout = org.Apache.log4j.Patternlayout log4j.Appender.Console.disposizione.Conversionpattern = %d [ %t] %-5p %c- %m %n # configurare quali logger log a quale appendice log4j.Logger.org.Apache.Catalina.nucleo.Containerbase.[Catalina].[LocalHost] = Info, LocalHost Log4j.Logger.org.Apache.Catalina.nucleo.Containerbase.[Catalina].[LocalHost].[/manager] = \ info, manager log4j.Logger.org.Apache.Catalina.nucleo.Containerbase.[Catalina].[LocalHost].[/host-manager] = \ info, host-manager
- Scarica log4j (Tomcat richiede v1.2.X).
- Scarica o costruisci Tomcat-Juli.Jar e Tomcat-Juli-Adapter.Jar che sono disponibili come componente “extra” per Tomcat. Vedere la documentazione di componenti aggiuntivi per i dettagli. Questo tomcat-juli.Il barattolo differisce da quello predefinito. Contiene l’implementazione completa della registrazione di Apache Commons e quindi è in grado di scoprire la presenza di Log4j e configurarsi.
- Se si desidera configurare Tomcat per utilizzare Log4j a livello globale:
- Metti log4j.Jar e Tomcat-Juli-Adapter.barattolo da “extra” in $ catalina_home/lib .
- Sostituisci $ catalina_home/bin/tomcat-juli.barattolo con tomcat-juli.barattolo da “extra”.
- Se stai eseguendo Tomcat con $ Catalina_home separata e $ Catalina_base e vuoi configurare per utilizzare LOG4J in un solo $ Catalina_base:
- Crea $ catalina_base/bin e $ catalina_base/lib directory se non esistono.
- Metti log4j.Jar e Tomcat-Juli-Adapter.barattolo da “extra” in $ catalina_base/lib
- Metti Tomcat-Juli.barattolo da “extra” come $ catalina_base/bin/tomcat-juli.vaso
- Se stai eseguendo un gestore della sicurezza, dovresti modificare $ catalina_base/conf/catalina.File di politica per regolare l’utilizzo di una copia diversa di Tomcat-Juli.vaso.
Nota: funziona perché le librerie, se esistono in $ catalina_base, vengono caricate preferendo la stessa libreria in $ catalina_home .
Nota: Tomcat-Juli.Il barattolo viene caricato da $ catalina_base /bin non $ catalina_base /lib poiché viene caricato come parte del processo bootstrap e tutte le classi bootstrap sono caricate da bin.
Questa configurazione log4j rispecchia la Java predefinita.util.Registrazione di configurazione che viene spedito con Tomcat: sia le app manager che host-manager ottengono un singolo file di registro e tutto il resto va alla “Catalina.Registra “File di registro. Ogni file viene lanciato una volta al giorno.
Puoi (e dovresti) essere più esigente su quali pacchetti includere nella registrazione. Tomcat definisce i logger per motore e nomi host. Ad esempio, per un registro Localhost Catalina più dettagliato, aggiungi questo alla fine del log4j.Proprietà sopra. Si noti che ci sono problemi noti con l’utilizzo di questa convenzione di denominazione (con parentesi quadrate) nei file di configurazione basati su XML di Log4j, quindi ti consigliamo di utilizzare un file di proprietà come descritto fino a quando una versione futura di Log4j consente questa convenzione.
log4j.Logger.org.Apache.Catalina.nucleo.Containerbase.[Catalina].[localhost] = debug log4j.Logger.org.Apache.Catalina.core = debug log4j.Logger.org.Apache.Catalina.sessione = debug
Attenzione: un livello di debug produrrà megabyte di registrazione e startup lento di Tomcat. Questo livello dovrebbe essere utilizzato con parsimonia quando è richiesto il debug delle operazioni interne Tomcat.
Le tue applicazioni Web dovrebbero sicuramente utilizzare la propria configurazione. Questo è valido con la configurazione sopra. Posizioneresti un log4j simile.Proprietà file nella directory Web-INF/Classes della tua applicazione Web e log4jx.y.z.Jar in Web-Inf/Lib. Quindi specificare la registrazione del livello del pacchetto. Questa è una configurazione di base di log4j che * non * richiede un logging comuni e dovresti consultare la documentazione log4j per ulteriori opzioni. Questa pagina è intesa solo come guida di bootstrap.
- Questo espone le librerie LOG4J alle applicazioni Web tramite il ClassLoader Common. Vedere la documentazione di caricamento della classe per i dettagli. Per questo motivo, le applicazioni Web e le librerie che utilizzano la libreria di registrazione di Apache Commons possono scegliere automaticamente Log4j come implementazione di registrazione sottostante.
- Il Java.util.L’API di registrazione è ancora disponibile per quelle applicazioni Web che la utilizzano direttamente. La registrazione $/conf/.Il file delle proprietà è ancora referenziato da Tomcat Startup Scripts. Per ulteriori informazioni, consultare le sottosezioni dell’introduzione a questa pagina. Rimozione di $/conf/registrazione.Il file delle proprietà, menzionato come uno dei passaggi sopra, provoca Java.util.Registrazione al fallback alla configurazione predefinita per JRE, che consiste nell’utilizzare un consolehandler e quindi non creare alcun file di registro standard. Dovresti confermare che tutti i file di registro vengono creati da Log4j Prima disabilitare il meccanismo standard.
- IL Valvola del registro di accesso E ExtendedAccessLogValve Usa la propria implementazione di registrazione autonoma, quindi loro non può essere configurato per utilizzare log4j. Fare riferimento alle valvole per dettagli di configurazione specifici.
Commenti
Avviso: Questa sezione dei commenti raccoglie i tuoi suggerimenti sul miglioramento della documentazione per Apache Tomcat.
Se hai problemi e hai bisogno di aiuto, leggi Trova la pagina di aiuto e fai la tua domanda nella mailing list di Tomcat-Users. Non fare tali domande qui. Questa non è una sezione di domande e risposte.
Il sistema di commenti Apache è spiegato qui. I commenti possono essere rimossi dai nostri moderatori se sono implementati o considerati non validi/fuori tema.
Tomcat log4j Configurazione passo dopo passo
La libreria e la configurazione Juli di registrazione sono disponibili per impostazione predefinita con Tomcat Installer. Per utilizzare il log4j per la registrazione interna di Tomcat, è necessario sostituire la libreria JULI esistente con l’integrazione log4j-juli.
1. Elimina Juli Library esistente (Catalina_Home/Bin/Tomcat-Juli.File JAr) e il file di configurazione di registrazione di Tomcat Java esistente (Catalina_Home/Conf/Reging.proprietà).
2. Scarica Juli Log4j Tomcat Library (Tomcat-Juli.Jar) dai download di Tomcat’ Sezione extra (http: // tomcat.Apache.org/download-70.CGI). Posizionare il file scaricato sulla directory Catalina_Home/Bin.
3. Scarica la libreria Adapters Tomcat Juli (Adapter Tomcat-Juli.Jar) dai download di Tomcat’ Sezione extra. Posiziona questo file nella directory Catalina_Home/Lib.
4. Scarica log4j (versione 1.2 o successivamente) e posizionare il file della libreria scaricato nella directory Catalina_Home/Lib.
5. Crea il file di configurazione log4j nella seguente posizione: Catalina_home/lib/log4j.proprietà. Controllare la configurazione log4j di seguito corrispondente alla configurazione di registrazione Java predefinita.
6. Riavvia Tomcat.
File di configurazione log4j corrispondente alle impostazioni di registrazione Tomcat predefinite:
log4j.rootLogger = Info, Catalina # Definisci tutti gli appendicieri log4j.Appender.Catalina = org.Apache.log4j.DailyrollingFileAppender log4j.Appender.Catalina.File = $/logs/catalina. log4j.Appender.Catalina.Append = true log4j.Appender.Catalina.ECCODING = UTF-8 # Rolled il registro una volta al giorno log4j.Appender.Catalina.DatePattern = '.'yyyy-mm-dd'.registro 'log4j.Appender.Catalina.layout = org.Apache.log4j.Patternlayout log4j.Appender.Catalina.disposizione.Conversionpattern = %d [ %t] %-5p %c- %m %n log4j.Appender.Localhost = org.Apache.log4j.DailyrollingFileAppender log4j.Appender.Localhost.File = $/logs/localhost. log4j.Appender.Localhost.Append = true log4j.Appender.Localhost.Codifica = UTF-8 log4j.Appender.Localhost.DatePattern = '.'yyyy-mm-dd'.registro 'log4j.Appender.Localhost.layout = org.Apache.log4j.Patternlayout log4j.Appender.Localhost.disposizione.Conversionpattern = %d [ %t] %-5p %c- %m %n log4j.Appender.Manager = org.Apache.log4j.DailyrollingFileAppender log4j.Appender.MANAGER.File = $/logs/manager. log4j.Appender.MANAGER.Append = true log4j.Appender.MANAGER.Codifica = UTF-8 log4j.Appender.MANAGER.DatePattern = '.'yyyy-mm-dd'.registro 'log4j.Appender.MANAGER.layout = org.Apache.log4j.Patternlayout log4j.Appender.MANAGER.disposizione.Conversionpattern = %d [ %t] %-5p %c- %m %n log4j.Appender.Host-manager = org.Apache.log4j.DailyrollingFileAppender log4j.Appender.Host-manager.File = $/logs/host-manager. log4j.Appender.Host-manager.Append = true log4j.Appender.Host-manager.Codifica = UTF-8 log4j.Appender.Host-manager.DatePattern = '.'yyyy-mm-dd'.registro 'log4j.Appender.Host-manager.layout = org.Apache.log4j.Patternlayout log4j.Appender.Host-manager.disposizione.Conversionpattern = %d [ %t] %-5p %c- %m %n log4j.Appender.Console = org.Apache.log4j.ConsoleAppender log4j.Appender.Console.Codifica = UTF-8 log4j.Appender.Console.layout = org.Apache.log4j.Patternlayout log4j.Appender.Console.disposizione.Conversionpattern = %d [ %t] %-5p %c- %m %n # configurare quali logger log a quale appendice log4j.Logger.org.Apache.Catalina.nucleo.Containerbase.[Catalina].[LocalHost] = Info, LocalHost Log4j.Logger.org.Apache.Catalina.nucleo.Containerbase.[Catalina].[LocalHost].[/manager] = info, manager log4j.Logger.org.Apache.Catalina.nucleo.Containerbase.[Catalina].[LocalHost].[/host-manager] = info, host-manager
Tomcat ora utilizzerà log4j per tutta la registrazione interna.
Per comprendere la configurazione sopra, controllare i dettagli di seguito per ottenere una vista chiara
Elementi di configurazione per log4j’s patternlayout
%d Data di registrazione. È possibile specificare il modello di data tra parentesi ricci ( %d) %C Nome di classe completamente qualificato (Utilizzare %C per stampare solo nome di classe semplice) %T Nome del thread in cui si è verificata la registrazione %F nome file di logging %di logging Level %l Numero della riga dell'evento di registrazione %m Il messaggio di registrazione effettivo %n separatore della linea (aggiungi questo alla fine del pattern per forza nuova riga)
Ecco alcuni degli esempi di pattern e le voci del registro che hanno generato:
%d [ %t] %-5p %c- %m %n 2011-09-07 14: 07: 41.509 [main] info myntclass-esecuzione.
%5p [%t] (%f:%l) -%m%n info [main] (myntclass.Java: 12) - Esecuzione.
Per maggiori informazioni sul collegamento del checkout log4j di seguito:
http: // registrazione.Apache.org/log4j/indice.html
In caso di emissione © Copyright o Missing Credit, consultare la pagina dei copyright per risoluzioni più veloci.
Come l’articolo. Condividilo.
- Fare clic per stampare (si apre in una nuova finestra)
- Fare clic per e -mail un link a un amico (si apre in una nuova finestra)
- Fare clic per condividere su Reddit (si apre in una nuova finestra)
- Fare clic per condividere su Pinterest (si apre in una nuova finestra)
- Fare clic per condividere su LinkedIn (si apre in una nuova finestra)
- Fai clic per condividere su WhatsApp (si apre in una nuova finestra)
- Fare clic per condividere su Twitter (si apre in una nuova finestra)
- Fai clic per condividere su Facebook (si apre in una nuova finestra)
- Fare clic per condividere su Tumblr (si apre in una nuova finestra)
- Fare clic per condividere su tasca (si apre in una nuova finestra)
- Fare clic per condividere su Telegram (si apre in una nuova finestra)
- Fare clic per condividere su Skype (si apre in una nuova finestra)
How-to: Configura Tomcat 9 per registrare tramite log4j2
Come puoi reindirizzare la registrazione interna di Tomcat 9 (Catalina e LocalHost) a Log4J2? Mentre ci sono molte guide disponibili per le versioni precedenti di Tomcat e Log4j, non sono riuscito a trovare nulla “completo” per quanto riguarda Tomcat 9 e Log4j2; La documentazione di Apache Tomcat 9 punta a “Le istruzioni fornite dal framework di registrazione alternativa” e gli stati della documentazione di Apache Log4j (nomi dei jam in 2. corretto):
- Creazione di un set di directory nella casa Catalina denominata log4j2/lib e log4j2/conf.
- Posizionamento di log4j-api-2.12.0.Jar, log4j-core-2.12.0.barattolo e log4j-appserver-2.12.0.barattolo nella directory log4j2/lib.
- Creazione di un file denominato log4j2-tomcat.XML, log4j2-tomcat.JSON, log4j2-tomcat.Yaml, log4j2-tomcat.YML o log4j2-tomcat.Proprietà nella directory Log4j2/Conf.
- Creare o modificare seTetenv.sh nella directory bin tomcat per includere classpath = $ catalina_home/log4j2/lib/*: $ catalina_home/log4j2/conf
Ma cosa mettere in quel log4j2-tomcat.* File di configurazione?
ha chiesto il 5 luglio 2019 alle 12:33
682 1 1 badge d’oro 6 6 badge d’argento 17 17 badge in bronzo
2 risposte 2
Ho trovato un file di proprietà di esempio nella documentazione Apache Tomcat 7, ma poiché questo è destinato all’uso con Log4j 1.X, ho dovuto adattarlo alla sintassi del file delle proprietà log4j2. Questo è il risultato:
# 'status' si riferisce ai messaggi di registro dal log4j2 stesso monitorInterval = 30 status = warn proprietà.loglevel.Proprietà Catalina = Info.loglevel.LocalHost = Info Proprietà.LayoutPattern.Catalina = %d %-5p [ %t] %-22.Proprietà 22 %m %n.LayoutPattern.localhost = %d %-5p [ %t] %-30.30 c %m %n # roll-over i registri una volta al mese utilizzando CrontriggerPolicy. proprietà.FiladatePattern.Catalina = %d proprietà.FiladatePattern.LocalHost = %d proprietà.Crontriggerschedule.Catalina = 0 0 0 1 * ? proprietà.Crontriggerschedule.localhost = 0 0 0 1 * ? ## Appenders # n.B.: - non è necessario specificare "Appenders = Catalina, LocalHost, Console" # poiché questi identificatori non contengono ".' caratteri. # - Le "politiche" di identificatori del sottocomponente e "cron" sono arbitrariamente scelti #; Il tipo effettivo viene specificato tramite l'attributo "tipo". # - "DirectWriterOolloverStrategy" viene utilizzato automaticamente poiché NO 'FILENAME' specificato. Appender.Catalina.tipo = appender rollingfile.Catalina.Nome = RollingFile-Catalina Appender.Catalina.FilePattern = $/logs/Catalina.$.Appender di registro.Catalina.disposizione.type = patternlayout appder.Catalina.disposizione.pattern = $ appender.Catalina.politiche.type = politiche appender.Catalina.politiche.Cron.Type = crontriggeringpolicy appender.Catalina.politiche.Cron.programma = $ appender.Catalina.politiche.Cron.EvaluteOnStartup = True Appender.Catalina.FilePerMissions = RW-R ----- Appender.Catalina.FileOwner = Tomcat Appender.Catalina.FileGroup = ADM Appender.Localhost.tipo = appender rollingfile.Localhost.Name = RollingFile-Localhost Appender.Localhost.FilePattern = $/logs/localhost.$.Appender di registro.Localhost.disposizione.type = patternlayout appder.Localhost.disposizione.pattern = $ appender.Localhost.politiche.type = politiche appender.Localhost.politiche.Cron.Type = crontriggeringpolicy appender.Localhost.politiche.Cron.programma = $ appender.Localhost.politiche.Cron.EvaluteOnStartup = True Appender.Localhost.FilePerMissions = RW-R ----- Appender.Localhost.FileOwner = Tomcat Appender.Localhost.FileGroup = ADM # REGAMENT Se si desidera continuare a registrarsi a Catalina.fuori dopo log4j2 prende il sopravvento. #Appender.Console.type = console #appender.Console.nome = stdout #appender.Console.disposizione.Type = PatternLayout ## Configura quale registro dei logger a quali appendiari rootlogger.Livello = $ ROOTLOGGER.appenderref.Catalina.Ref = RollingFile-Catalina #RootLogger.appenderref.stdout.Rif = stdout # Qui, l'identificatore contiene '.'caratteri, quindi dobbiamo specificare l'elenco. Logger = org.Apache.Catalina.nucleo.Containerbase.[Catalina].[Localhost] Logger.org.Apache.Catalina.nucleo.Containerbase.[Catalina].[LocalHost].nome = logger localhost.org.Apache.Catalina.nucleo.Containerbase.[Catalina].[LocalHost].Livello = $ Logger.org.Apache.Catalina.nucleo.Containerbase.[Catalina].[LocalHost].appenderref.Localhost.Ref = Rollingfile-Localhost
Il motivo principale per cui mi usi log4j2 era essere in grado di ottenere la rotazione del registro mensile, ma puoi facilmente regolare tutto il modo in cui vuoi, anche senza riavviare Tomcat.