Come disabilitare i logger di una class o di un intero pacchetto?

Sto usando apache.commons.logging, per ora volevo usare l’implementazione di SimpleLog, ma quando ho cambiato il livello, i logger delle librerie escono. Voglio che lo spenga. C’è un modo semplice per cambiare il livello di registro per l’intero pacchetto (può fare log4j farlo)?
Ho provato a impostare

org.apache.commons.logging.simplelog.log.foo = fatale

nei file di proprietà simplelog da disabilitare (l’impostazione su fatal è OK) foo logger, ma non funziona. (foo è un nome del logger che appare in output: [INFO] foo – Message).

In Log4j è ansible specificare un livello di registrazione per il pacchetto, la class o il logger specificati identificati da una stringa. Basta semplicemente scrivere questo nel file log4j.properties:

log4j.logger. = DEBUG|INFO|OFF|WARN... 

Dovresti usare:

 log4j.logger.foo = OFF 

Si noti che “foo” non ha bisogno di essere un pacchetto, o una class, ma è una stringa arbitraria. Ad esempio abbiamo un logger chiamato “SQL” che viene chiamato da molte classi.

Se si utilizza Spring Boot, è ansible impostare su OFF nel file application.properties. Esempio:

 logging.level.org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer=OFF 

Riferimento: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html#boot-features-custom-log-levels

L’uso di SimpleLog da Commons Logging richiede due file di configurazione, a meno che non si stiano utilizzando alcune proprietà di sistema. I file sono: commons-logging.properties e simplelog.properties. Le proprietà del livello di log che hai indicato devono essere inserite in simplelog.properties come:

 org.apache.commons.logging.simplelog.log.foo=warn 

dove “foo” è il nome del logger. In genere, questo è il pacchetto o il pacchetto e il nome della class. Nell’esempio seguente, tutto il pacchetto com.stackoverflow.utils è impostato su info mentre com.stackoverflow.servlet.Dispatcher è impostato in modo specifico per avvisare :

 org.apache.commons.logging.simplelog.log.com.stackoverflow.utils=info org.apache.commons.logging.simplelog.log.com.stackoverflow.servlet.Dispatcher=warn 

Il file commons-logging.properties dovrebbe contenere:

 org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog 

Documentazione qui e qui .