2014-04-27 15 views
29

Come abilitare i registri del server http in un server tomcat incorporato fornito da avvio a molla? Ho provato questo in application.properties ma non crea il file, né i log alla consoleSpring Boot abilita la registrazione delle richieste HTTP

#application.properties 
server.tomcat.access-log-enabled=true 
server.tomcat.access-log-pattern=%a asdasd 
logging.file=/home/mati/mylog.log 
spring boot 1.0.1.RELEASE 
+0

Suppongo che intendessi "application.properties"? L'errore di ortografia nel nome del file è l'unico errore evidente che riesco a vedere. Si noti che il 'logging.file' non ha alcun effetto sul log di accesso di tomcat (anche se il file dovrebbe essere creato se si sta utilizzando una configurazione di progetto" normale "). Normalmente la valvola Tomcat crea i log in "./logs" (cioè relativamente a user.dir). –

+0

Sì, quello era il mio errore ortografico, ma nel mio progetto è corretto. So che Spring lo legge correttamente, perché 'server.port = 9900' funziona correttamente. Non riesco a vedere la directory specificata da te :( – Mati

+0

Puoi condividere il tuo progetto? –

risposta

30

Prova

server.tomcat.accessLogEnabled=true 
server.tomcat.accessLogPattern=%a asdasd 

e guardare in /tmp/tomcat.<random>.<port>/logs per i file di output. Impostare la proprietà server.tomcat.basedir per modificare la directory.

+3

In Windows, Tomcat crea i file di registro in '% TEMP% \ tomcat. . \ logs'. È * non * relativo a user.dir – Henning

+0

Penso che sia vero su tutte le piattaforme (a meno che non si imposti esplicitamente 'server.tomact.basedir'), ma probabilmente non è stato quando questa risposta è stata creata per la prima volta. –

+0

Funziona anche per Jetty? – BamaPookie

31

Qui va un modo per averli visualizzati in console o qualsiasi file che si sceglie. Dichiarare Tomcat di RequestDumperFilter in tutte le fasce @Configuration:

@Bean 
public FilterRegistrationBean requestDumperFilter() { 
    FilterRegistrationBean registration = new FilterRegistrationBean(); 
    Filter requestDumperFilter = new RequestDumperFilter(); 
    registration.setFilter(requestDumperFilter); 
    registration.addUrlPatterns("/*"); 
    return registration; 
} 

Ed ecco l'output:

http-nio-8765-exec-1 START TIME  =30-may-2016 12:45:41 
http-nio-8765-exec-1   requestURI=/info 
http-nio-8765-exec-1   authType=null 
http-nio-8765-exec-1 characterEncoding=UTF-8 
http-nio-8765-exec-1  contentLength=-1 
http-nio-8765-exec-1  contentType=null 
http-nio-8765-exec-1  contextPath= 
http-nio-8765-exec-1    cookie=JSESSIONID=E7259F5F9ED6B04CBE5A294C5F8CA5C6 
http-nio-8765-exec-1    header=host=mies-057:8765 
http-nio-8765-exec-1    header=connection=keep-alive 
http-nio-8765-exec-1    header=accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
http-nio-8765-exec-1    header=upgrade-insecure-requests=1 
http-nio-8765-exec-1    header=user-agent=Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 
http-nio-8765-exec-1    header=referer=http://mies-057:1111/ 
http-nio-8765-exec-1    header=accept-encoding=gzip, deflate, sdch 
http-nio-8765-exec-1    header=accept-language=es-ES,es;q=0.8 
http-nio-8765-exec-1    header=cookie=JSESSIONID=E7259F5F9ED6B04CBE5A294C5F8CA5C6 
http-nio-8765-exec-1    locale=es_ES 
http-nio-8765-exec-1    method=GET 
http-nio-8765-exec-1   pathInfo=null 
http-nio-8765-exec-1   protocol=HTTP/1.1 
http-nio-8765-exec-1  queryString=null 
http-nio-8765-exec-1   remoteAddr=192.168.56.1 
http-nio-8765-exec-1   remoteHost=192.168.56.1 
http-nio-8765-exec-1   remoteUser=null 
http-nio-8765-exec-1 requestedSessionId=E7259F5F9ED6B04CBE5A294C5F8CA5C6 
http-nio-8765-exec-1    scheme=http 
http-nio-8765-exec-1   serverName=mies-057 
http-nio-8765-exec-1   serverPort=8765 
http-nio-8765-exec-1  servletPath=/info 
http-nio-8765-exec-1   isSecure=false 
http-nio-8765-exec-1 ------------------=-------------------------------------------- 
http-nio-8765-exec-1 ------------------=-------------------------------------------- 
http-nio-8765-exec-1   authType=null 
http-nio-8765-exec-1  contentType=application/json;charset=UTF-8 
http-nio-8765-exec-1    header=Strict-Transport-Security=max-age=31536000 ; includeSubDomains 
http-nio-8765-exec-1    header=X-Application-Context=EDGE:8765 
http-nio-8765-exec-1    header=Content-Type=application/json;charset=UTF-8 
http-nio-8765-exec-1    header=Transfer-Encoding=chunked 
http-nio-8765-exec-1    header=Date=Mon, 30 May 2016 10:45:41 GMT 
http-nio-8765-exec-1    status=200 
http-nio-8765-exec-1 END TIME   =30-may-2016 12:45:41 
http-nio-8765-exec-1 =============================================================== 

poi gestirlo come qualsiasi log primavera avvio standard.

11

In primavera Boot 1.5.1 Il properties mentioned by Dave Syer non funziona più, invece vengono rinominati in:

server.tomcat.basedir=target/tomcat-logs 
server.tomcat.accesslog.enabled=true 
server.tomcat.accesslog.pattern=%t %a "%r" %s (%D ms) 

Utilizzando la configurazione di cui sopra, se si esegue il progetto tramite la sua directory radice il registro sarà disponibile presso bersaglio /tomcat-logs/log/access_log.*

Problemi correlati