Spring Boot启用http请求记录

Mat*_*ati 34 java logging tomcat http spring-boot

如何在spring boot提供的嵌入式tomcat服务器中启用http服务器日志?我试过这个,application.properties但它没有创建文件,也没有记录到控制台

#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
Run Code Online (Sandbox Code Playgroud)

Xtr*_*ica 37

在这里,它可以将它们显示在控制台或您选择的任何文件中.RequestDumperFilter在任何@Configuration类中声明Tomcat :

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

那是输出:

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 ===============================================================
Run Code Online (Sandbox Code Playgroud)

然后将其作为任何标准的Spring Boot日志进行管理.


Dav*_*yer 30

尝试

server.tomcat.accessLogEnabled=true
server.tomcat.accessLogPattern=%a asdasd
Run Code Online (Sandbox Code Playgroud)

并查找/tmp/tomcat.<random>.<port>/logs输出文件.设置 server.tomcat.basedir属性以更改目录.

  • 在Windows下,Tomcat在`%TEMP%\ tomcat.<randomID>.<portnumber>\logs`下创建日志文件.它不是*相对于user.dir (3认同)

ger*_*tan 17

在Spring Boot 1.5.1 中,Dave Syer提到属性不再有效,而是将它们重命名为:

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

使用上面的配置,如果通过其根目录运行项目,则日志将在target/tomcat-logs/log/access_log中可用.*


veb*_*ben 6

使用 Spring Boot 2.X,如果您想管理访问日志,请将这些行添加到您的application.yml文件中:

server:
  tomcat:
    basedir: /home/tmp
    accesslog:
      enabled: true
Run Code Online (Sandbox Code Playgroud)

它将创建一个以logs您定义的 basedir命名的文件夹(/home/tmp此处),其中包含访问日志文件。

如果您想在控制台中访问日志,请执行以下操作:

server:
  tomcat:
    accesslog:
      enabled: true
      directory: /dev
      prefix: stdout
      buffered: false
      suffix:
      file-date-format:
Run Code Online (Sandbox Code Playgroud)

它将日志重定向到/dev/stdout

更多信息:https : //community.pivotal.io/s/article/how-to-configure-access-log-entries-for-a-spring-boot-app?language=en_US