Spring Boot enable http requests logging (access logs)

前端 未结 4 742
谎友^
谎友^ 2020-12-05 04:18

How to enable access logs in an embedded tomcat server provided by spring boot? I\'ve tried this in application.properties but

相关标签:
4条回答
  • 2020-12-05 04:43

    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.

    0 讨论(0)
  • 2020-12-05 04:44

    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.*

    0 讨论(0)
  • 2020-12-05 04:54

    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

    0 讨论(0)
  • 2020-12-05 05:00

    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.

    0 讨论(0)
提交回复
热议问题