Problemi con Log4j2

di il
6 risposte

Problemi con Log4j2

Buongiorno a tutti,

Stavo provando un esempio Log4j2, ma non riesco a capire come funziona. Utilizzo Eclipse Neon, lancio il software facendo Maven Build (E' un project maven), su Console vado a leggere il log ma non ottengo nulla. Nemmeno il file sul Desktop.
Non so se sto sbagliando a lanciare il software con maven oppure c'è qualcosa di sbagliato nel path del file, posto il codice:
package co.com.log4j.sample.Log4jSample;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;


public class App
{
public static final Logger logger = LogManager.getLogger(App.class);

public static void main( String[] args ) {

if(logger.isDebugEnabled()){
logger.debug("New message from log4j");
}
}
}
Questo è l' xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="WARN">
	<appenders>
		<Console name="Console" target="SYSTEM_OUT">
			<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
		</Console>

		<File name="MyFile" fileName="C:/Users/Manuel/Desktop">
			<PatternLayout
				pattern="%d{yyyy-mm-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
		</File>
	</appenders>

	<loggers>
		<root level="debug">
			<appender-ref ref="Console" />
			<appender-ref ref="MyFile" />
		</root>
	</loggers>
</configuration>

6 Risposte

  • Re: Problemi con Log4j2

    Dove è e come si chiama il file XML di configurazione? Log4j usa una ben precisa logica di ricerca che è ben spiegata nella documentazione ufficiale (2.x): Automatic Configuration
  • Re: Problemi con Log4j2

    Sta dentro il progetto sotto il path:

    src/main/resources/log4j2.xml
  • Re: Problemi con Log4j2

    manuel__89 ha scritto:


    Sta dentro il progetto sotto il path:

    src/main/resources/log4j2.xml
    Corretto. Usa il punto 9. If a JSON file cannot be located the XML ConfigurationFactory will try to locate log4j2.xml on the classpath.

    Ho provato adesso un progettino Maven con esattamente il tuo codice e la tua configurazione (ho cambiato il fileName) e .... funziona, vedo il log sia su console che su file.


    Nota comunque che hai messo una directory come fileName, che è sbagliato.
  • Re: Problemi con Log4j2

    Ho cambiato il file di congigurazione cosi:
    
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration status="WARN">
    	<appenders>
    		<Console name="Console" target="SYSTEM_OUT">
    			<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
    		</Console>
    
    		<File name="FILE" fileName="logfile.log" append="true">
    			<PatternLayout pattern="%d{yyyy-mm-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
    		</File>
    		
    	</appenders>
    
    	<loggers>
    		<root level="debug">
    			<appender-ref ref="Console" />
    			<appender-ref ref="MyFile" />
    		</root>
    	</loggers>
    </configuration>
    
    
    e il log è questo:
    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building Log4jSample 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ Log4jSample ---
    [INFO] Deleting C:\Users\Manuel\Documents\Eclipse_Workspace\Log4j2Example-master\target
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Log4jSample ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 1 resource
    [INFO]
    [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ Log4jSample ---
    [INFO] Changes detected - recompiling the module!
    [INFO] Compiling 1 source file to C:\Users\Manuel\Documents\Eclipse_Workspace\Log4j2Example-master\target\classes
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 3.304 s
    [INFO] Finished at: 2016-09-24T12:23:32+02:00
    [INFO] Final Memory: 13M/135M
    [INFO] ------------------------------------------------------------------------
    Forse sto sbagliando nel lanciare l'applicazione ? faccio Run as maven build
  • Re: Problemi con Log4j2

    manuel__89 ha scritto:


    Ho cambiato il file di congigurazione cosi:
    fileName="logfile.log" è ok ma così è relativo alla directory "corrente" e quale è dipende da come/da dove si avvia la applicazione. In Eclipse la directory corrente per default è quella del progetto (quindi ti ritroverai il logfile.log dove hai il pom.xml).

    manuel__89 ha scritto:


    Forse sto sbagliando nel lanciare l'applicazione ? faccio Run as maven build
    Ma nooo. Così hai solo avviato la fase di build del progetto con Maven. Non hai avviato la applicazione e quel tuo main() !
    Dimentica il "Run as maven build". Usa le stesse cose che useresti per un progetto non-maven. Lascia/metti che la voce "Build Automatically" sotto menù Project sia spuntata (il build lo fai lui in automatico quando cambia "qualcosa") e poi usa Run->Run o la icona con il triangolo nella toolbar o con l'apposita combinazione di tasti o ancora sul sorgente click tasto destro -> Run As -> Java Application.
    Ci sono molti modi.
  • Re: Problemi con Log4j2

    Grazie mille...

    mi insegni sempre qualcosa ogni giorno

    P.S avevo anche i nomi differenti per il file da una parte utilizzavo FILE dall'altra MyFile
Devi accedere o registrarti per scrivere nel forum
6 risposte