In un'applicazione Web di avvio di avvio autonomo (jar eseguibile), come si comunica a Spring Boot che vogliamo che i registri di accesso HTTP dell'istanza di Tomcat incorporati vengano inviati allo stdout?Come si dice a Spring Boot di inviare i log di accesso di Tomcat incorporati allo stdout?
6
A
risposta
6
Se si utilizza Logback, è possibile utilizzare logback-access per questo.
Aggiungi dipendenza ch.qos.logback:logback-access
opzionale Javaconfig per aggiungere Teefilter (richiesta registrazione & risposta):
@Bean(name = "TeeFilter")
public Filter teeFilter() {
return new ch.qos.logback.access.servlet.TeeFilter();
}
Javaconfig per Tomcat incorporato:
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
LogbackValve logbackValve = new LogbackValve();
// point to logback-access.xml
logbackValve.setFilename("src/main/resources/logback-access.xml");
tomcat.addContextValves(logbackValve);
return tomcat;
}
Contenuti per logback-access.xml
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<Pattern>combined</Pattern>
<Pattern>%fullRequest%n%n%fullResponse</Pattern>
</encoder>
</appender>
<appender-ref ref="STDOUT" />
</configuration>
+0
Usiamo davvero Logback e già utilizzato l'appender della console :) Il pezzo mancante era la configurazione del bean 'TomcatEmbeddedServletContainerFactory'. Bella risposta! –
Problemi correlati
- 1. Log di accesso tomcat di avvio a molla
- 2. spring-boot-starter-tomcat vs spring-boot-starter-web
- 3. Come utilizzare Tomcat 8 + Spring Boot + Maven
- 4. Come eliminare il log di accesso Tomcat dopo n giorni?
- 5. spring boot war senza tomcat incorporato
- 6. Spring boot + thymeleaf: accesso utente
- 7. Pool di connessione predefinito per tomcat in spring-boot?
- 8. Aggiunta di spazi allo stdout
- 9. Spring Boot con grado di produzione Tomcat o Jetty incorporato
- 10. Come posso inviare .png plot allo stdout in gnuplot?
- 11. Tomcat 8, Spring Boot, @ Load Time Load configurabile senza -javaagent?
- 12. Spring Boot: come aggiungere altri file WAR al tomcat incorporato?
- 13. Le proprietà della riga di comando spring-boot sono disponibili quando si utilizza spring-boot: run?
- 14. Che cosa dice questo log di Fusion?
- 15. Dove si trovano i file di log di Magento?
- 16. Dove si trova il registro di emergenza di avvio a molla Tomcat incorporato?
- 17. Come registrare l'output stdout in Tomcat?
- 18. Impossibile inviare l'applicazione java Spring boot al cluster Spark
- 19. Come distribuire Spring Boot su Cloud Foundry?
- 20. Spring Boot - pagina 404 personalizzata con tomcat autonomo
- 21. Come si può specificare una directory temporanea per i caricamenti di file in Spring Boot?
- 22. Come disabilitare la persistenza della sessione Tomcat in Spring Boot tramite il nome percorso di Manager?
- 23. L'app Spring Boot non funziona quando distribuito in Tomcat autonomo
- 24. Test di integrazione di applicazioni multi-war in Spring Boot
- 25. Come disabilitare i log di accesso in apache tramite htaccess?
- 26. Maven non esegue i test Spring Boot
- 27. Sonar si lamenta della configurazione Spring Boot
- 28. Come si crea un controller 404 utilizzando Spring Boot?
- 29. Come acquisire il log di avvio di Tomcat
- 30. Come acquisire l'output stdout/log di un agente in SLIME?
Penso che sarebbe sufficiente impostare il livello di registrazione su debug perché i registri di primavera e tomcat sono impostati su informazioni per impostazione predefinita. I log avrebbero il nome di classe completo in modo da conoscere l'origine del log. –
@RahulSharma il livello di registrazione non ha alcun impatto sulla posizione di output dell'appender (ad esempio file, stdout, URL, ecc.). Abbiamo bisogno di tutti gli output (inclusi i log di accesso di Tomcat) per andare allo stdout. Tutto eccezionale Tomcat è facile, sono i registri di Tomcat che sono difficili. –
Spiacente, ho pensato che volessi vedere il 100% dei log. E dai [documenti] (https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html#boot-features-logging-file-output) scrive il boot in primavera registri su console per impostazione predefinita, quindi non so perché non li vedi. Inoltre, stai usando tomcat incorporato? Se sì, dai un'occhiata alle proprietà del server incorporato [qui] (https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html) –