Salve,
ho realizzato una semplice applicazione di test per Log4J facendo in modo che il file di log andasse in una cartella apposita creata da Log4J stesso, ovvero log/events.log
Tutto ok. Il problema è che se metto la stessa identica classe in un altro package non mi è più possibile reindirazzare l'output nella cartella log a meno che non creo preventivamente la cartella log. La cosa più sconvolgente è che io non cambio niente, copio la classe MyLog4J.java ed il file log4j.properties nel nuovo progetto di Eclipse.
Uso linux, ho controllato anche i permessi, ma sono identici in entrambi i package.
Ecco la mia classe MyLog4J.java
Codice PHP:
import org.apache.log4j.*;
public class MyLog4J {
public static void main(String[] args) {
// Carico il file di configurazione
PropertyConfigurator.configure("log4j.properties");
// Ottengo l'istanza del log
Logger log = Logger.getLogger("MyLog4J.class");
log.debug("DEBUG");
[...]
}
}
Il file log4j.properties:
Codice PHP:
#LOGGER
log4j.rootCategory=DEBUG, APPENDER_OUT, APPENDER_FILE
#APPENDER_OUT
log4j.appender.APPENDER_OUT=org.apache.log4j.ConsoleAppender
log4j.appender.APPENDER_OUT.layout=org.apache.log4j.SimpleLayout
#APPENDER_FILE
log4j.appender.APPENDER_FILE=org.apache.log4j.FileAppender
log4j.appender.APPENDER_FILE.File=log/events.log
log4j.appender.APPENDER_FILE.layout=org.apache.log4j.SimpleLayout
Grazie dell'attenzione,
Matteo.