2016-05-17 107 views
6

Sto lavorando a un'applicazione Spark in Scala che utilizza SBT per le sue build. Spark crea una registrazione molto dettagliata che vorrei ignorare quando i test sono in esecuzione.log4j.properties Ignorato quando si esegue il test sbt

Ho un file log4j.properties istituito ai sensi src/test/risorse, così come src/main/risorse con il seguente contenuto:

# Set everything to be logged to the console 
log4j.rootCategory=INFO, console 
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{10}: %m%n 

# Settings to quiet third party logs that are too verbose 
log4j.logger.akka=ERROR 
log4j.logger.Remoting=ERROR 
log4j.logger.org.apache.spark=ERROR 
log4j.logger.org.eclipse.jetty=ERROR 

Quando si esegue l'applicazione con sbt test o l'esecuzione di un completo applicazione, funziona correttamente ma registra ancora tutte le istruzioni di livello INFO rilevanti per Spark

C'è qualcosa che mi manca nella configurazione del file o devo dire esplicitamente a sbt di caricare log4j.properties? Dovrei provare un nuovo approccio tutti insieme?

Sono inoltre limitato dal fatto che l'applicazione deve essere in grado di essere eseguita sul nostro ambiente CI e su altri computer degli utenti con le impostazioni di registrazione applicate. Ciò significa che le impostazioni devono essere incluse e riconosciute dal repository git dell'applicazione.

+0

Hai finalmente risolto il problema? (perché sono nella stessa situazione) – daveoncode

risposta

0

Copiare il file log4j.properties nella directory $SPARK_HOME/conf. Questo è quello usato dall'impianto di accensione

+0

Le impostazioni devono essere memorizzate e utilizzate localmente nella directory dell'applicazione in modo che possano essere condivise tra altri utenti e il nostro ambiente CI. Forzare specifiche impostazioni di registrazione globali per Spark non è un'opzione – lobobabysaurus

+0

Quello che ho menzionato è l'approccio standard: quindi è * un * corretto. Quindi apparentemente hai * requisiti * aggiuntivi * che non sono stati menzionati nell'OP *. Potrei guardare in un secondo momento come affrontare i tuoi particolari. – javadba