Come è possibile configurare la registrazione a livello di programmazione in un'applicazione di avvio a molla?Configurazione registrazione programmatica di avvio a molla
L'utilizzo di un file xml o di proprietà non è abbastanza flessibile per le mie esigenze.
Aggiornamento: voglio ottenere qualcosa di simile:
@Value("${logging.level.root}")
private String loggingLevelRoot;
@Value("${logging.level.myApp}")
private String loggingLevelMyApp;
@Value("${logging.file}")
private boolean fileAppenderEnabled;
....
setLevel(Logger.ROOT_LOGGER_NAME, Level.toLevel(loggingLevelRoot)));
setLevel("com.myapp", Level.toLevel(loggingLevelMyApp)));
setLevel("org.springframework", Level.WARN);
setLevel("org.apache.coyote", Level.INFO);
setLevel("org.apache.catalina", Level.INFO);
setLevel("org.apache.catalina.startup.DigesterFactory", Level.ERROR);
setLevel("org.apache.catalina.util.LifecycleMBeanBase", Level.ERROR);
Logger logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
logger.addAppender(createConsoleAppender());
if (fileAppenderEnabled) {
logger.addAppender(createFileAppender());
}
Tutto quello che devo per ambiente è:
- logging.level.root = [INFO, DEBUG, ..]
- logging.level.myApp = [INFO, DEBUG, ..]
- logging.file = [true | false]
Nessuna duplicazione di XML, Groovy e altri formati con cui non voglio davvero occuparmi.
Alla fine della giornata, si tratta davvero di ottenere la stessa flessibilità per il logging di Spring JavaConfig fatto per i bean. XML o altri formati di file sono semplicemente troppo statici, richiedono troppe duplicazioni e non sono integrati abbastanza bene con il resto della configurazione dell'applicazione.
Perché la registrazione deve essere configurata in modo diverso rispetto a qualsiasi altro bean o servizio? Non ha senso.
Cosa non è abbastanza flessibile utilizzando xml? Se si utilizza Logback, è possibile utilizzare Groovy per configurare il logback. –
@ M.Deinum No, non puoi; Spring Boot (in realtà, penso che Spring Autoconfig) calpesta le configurazioni di Groovy. – chrylis
Ho anche bisogno di una configurazione diversa per ambiente, con diversi tipi di appender, ... Quindi no, XML non lo taglia. –