Try
server.tomcat.accessLogEnabled=true
server.tomcat.accessLogPattern=%a asdasd
and look in /tmp/tomcat.<random>.<port>/logs
for the output files. Set server.tomcat.basedir
property to change the directory.
Вопрос
How to enable access logs in an embedded tomcat server provided by spring boot? I've tried this in application.properties
but it doesn't create file, neither logs to console.
server.tomcat.access-log-enabled=true
server.tomcat.access-log-pattern=%a asdasd
logging.file=/home/mati/mylog.log
Решение 2
Try
server.tomcat.accessLogEnabled=true
server.tomcat.accessLogPattern=%a asdasd
and look in /tmp/tomcat.<random>.<port>/logs
for the output files. Set server.tomcat.basedir
property to change the directory.
Другие советы
Here it goes a way to have them displayed in console or whatever file you choose. Declare Tomcat's RequestDumperFilter
in any @Configuration
class:
@Bean
public FilterRegistrationBean requestDumperFilter() {
FilterRegistrationBean registration = new FilterRegistrationBean();
Filter requestDumperFilter = new RequestDumperFilter();
registration.setFilter(requestDumperFilter);
registration.addUrlPatterns("/*");
return registration;
}
And that's the 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 ===============================================================
Then manage it as any standard Spring Boot log.
In Spring Boot 1.5.1 the properties mentioned by Dave Syer no longer works, instead they're renamed into:
server.tomcat.basedir=target/tomcat-logs
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%t %a "%r" %s (%D ms)
Using the configuration above, if running the project via its root directory the log will be available at target/tomcat-logs/log/access_log.*
With Spring Boot 2.X, if you want to manage Access logs, add these lines to your application.yml
file:
server:
tomcat:
basedir: /home/tmp
accesslog:
enabled: true
It will create a folder named logs
in the basedir you defined (/home/tmp
here) containing the access log files.
If you want to have access logs in the console do like that:
server:
tomcat:
accesslog:
enabled: true
directory: /dev
prefix: stdout
buffered: false
suffix:
file-date-format:
It will rediect logs to /dev/stdout
More informations: https://community.pivotal.io/s/article/how-to-configure-access-log-entries-for-a-spring-boot-app?language=en_US
If you have a Spring Boot app, and would like to enable http logging to stdout
, as might be useful in a containerised application, without modifying and code or config files you can add the following environment variables
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.directory=/dev
server.tomcat.accesslog.prefix=stdout
server.tomcat.accesslog.suffix=
server.tomcat.accesslog.file-date-format=
Note suffix
and file-date-format
should be set to nothing
Then restart your app and you should get logging