美文网首页
Spring Boot内嵌的tomcat日志

Spring Boot内嵌的tomcat日志

作者: RaiseHead | 来源:发表于2019-07-10 13:53 被阅读0次

    Spring Boot本身附带一个嵌入式Tomcat服务器,非常方便。但是在默认情况下是无法看到Tomcat的日志。

    在本文中,将介绍如何通过配置Spring Boot来显示Tomcat的内部日志和访问日志。

    Tomcat日志类型

    嵌入式Tomcat存储两种类型的日志:

    • 访问日志 Access Log
    • 内部服务器日志

    访问日志保存应用程序处理的所有请求的记录。这些日志可用于跟踪页面命中计数和用户会话活动等内容。而内部服务器日志将帮助我们解决运行中的应用程序的任何问题。

    访问日志

    默认情况下,是未启用访问日志的。我们可以通过向application.properties添加属性来轻松启用它们:

    server.tomcat.accesslog.enabled=true
    
    

    同样,也可以使用VM参数来启用访问日志:

    java -jar -Dserver.tomcat.basedir=tomcat -Dserver.tomcat.accesslog.enabled=true app.jar
    
    

    这些日志文件将在临时目录中创建。 例如,在Windows上,访问日志的目录将类似于AppData\Local\Temp\tomcat.2142886552084850151.40123\logs

    日志格式

    默认访问日志的格式如下:

    %h %l %u %t \"%r\" %>s %b
    
    

    它的含义是:

    %h - 发送请求的客户端IP;  
    %l - 用户的身份;
    %u - 由HTTP身份验证确定的用户名;
    %t - 收到请求的时间;
    %r - 来自客户端的请求URL;
    %> s - 从服务器发送到客户端的状态代码,如  200;
    %b -客户端响应的大小,或者这些请求的响应大小;
    
    

    由于请求是没有经过身份验证的用户,因此%l和%u打印了破折号。

    实际上,如果缺少任何信息,Tomcat将为该插槽打印一个破折号

    自定义访问日志

    我们可以通过在application.properties中添加一些属性来覆盖默认的Spring Boot配置。

    首先,要更改默认日志文件名:

    server.tomcat.accesslog.suffix=.log
    server.tomcat.accesslog.prefix=access_log
    server.tomcat.accesslog.file-date-format=.yyyy-MM-dd
    
    

    另外,我们可以更改日志文件的位置:

    server.tomcat.basedir=tomcat
    server.tomcat.accesslog.directory=logs
    
    

    最后,我们可以覆盖日志文件中写入日志的方式:

    server.tomcat.accesslog.pattern=common
    
    

    服务器内部日志

    Tomcat服务器的内部日志非常有助于解决任何服务器端问题。

    要查看这些日志,我们必须在application.properties中添加以下日志记录配置:

    logging.level.org.apache.tomcat=DEBUG
    logging.level.org.apache.catalina=DEBUG
    
    

    然后我们会看到类似的东西:

    2019-05-17 15:41:07.261 DEBUG 31160 --- [0124-Acceptor-0] o.apache.tomcat.util.threads.LimitLatch  : Counting up[http-nio-40124-Acceptor-0] latch=1
    2019-05-17 15:41:07.262 DEBUG 31160 --- [0124-Acceptor-0] o.apache.tomcat.util.threads.LimitLatch  : Counting up[http-nio-40124-Acceptor-0] latch=2
    2019-05-17 15:41:07.278 DEBUG 31160 --- [io-40124-exec-1] org.apache.tomcat.util.modeler.Registry  : Managed= Tomcat:type=RequestProcessor,worker="http-nio-40124",name=HttpRequest1
    ...
    2019-05-17 15:41:07.279 DEBUG 31160 --- [io-40124-exec-1] m.m.MbeansDescriptorsIntrospectionSource : Introspected attribute virtualHost public java.lang.String org.apache.coyote.RequestInfo.getVirtualHost() null
    ...
    2019-05-17 15:41:07.280 DEBUG 31160 --- [io-40124-exec-1] o.a.tomcat.util.modeler.BaseModelMBean   : preRegister org.apache.coyote.RequestInfo@1e6f89ad Tomcat:type=RequestProcessor,worker="http-nio-40124",name=HttpRequest1
    2019-05-17 15:41:07.292 DEBUG 31160 --- [io-40124-exec-1] org.apache.tomcat.util.http.Parameters   : Set query string encoding to UTF-8
    2019-05-17 15:41:07.294 DEBUG 31160 --- [io-40124-exec-1] o.a.t.util.http.Rfc6265CookieProcessor   : Cookies: Parsing b[]: jenkins-timestamper-offset=-19800000
    2019-05-17 15:41:07.296 DEBUG 31160 --- [io-40124-exec-1] o.a.c.authenticator.AuthenticatorBase    : Security checking request GET /greetings/Harry
    2019-05-17 15:41:07.296 DEBUG 31160 --- [io-40124-exec-1] org.apache.catalina.realm.RealmBase      :   No applicable constraints defined
    

    相关文章

      网友评论

          本文标题:Spring Boot内嵌的tomcat日志

          本文链接:https://www.haomeiwen.com/subject/oxqhkctx.html