Spring启动tomcat访问日志

use*_*166 20 spring-boot

我根据spring引导参考文档启用了tomcat访问日志.但它不能正常工作.当我启用它时,创建了访问日志文件,我可以看到那天记录的请求.但是在第二天开始时我没有看到任何新文件.它开始记录21小时.第二天它从02hrs开始登录.从第4天开始,没有创建访问日志.

这是我使用的属性.

server.tomcat.access-log-enabled=true
server.tomcat.access-log-pattern=%h %l %u %t "%r" %s %b %D
server.tomcat.basedir=/var/lib/org_name/tracking_server 
Run Code Online (Sandbox Code Playgroud)

在tracking_server文件夹下创建日志和工作文件夹.

如果我遗失了什么,请告诉我.根据logback.xml中指定的配置,常规日志记录完美运行

感谢您的帮助.

jmg*_*esc 18

该配置适用于春季启动版本1.2.3.RELEASE.但是,如果你有当前版本的spring boot,那些参数有点不同,请参考:

server.tomcat.accesslog.directory=logs # Directory in which log files are created. Can be relative to the tomcat base dir or absolute.
server.tomcat.accesslog.enabled=false # Enable access log.
server.tomcat.accesslog.pattern=common # Format pattern for access logs.
Run Code Online (Sandbox Code Playgroud)

如您所知,区别在于连字符( - ).

此外,根据此文档,tomcat访问日志配置包括以下参数:

  • fileDateFormat.默认值为yyyy-MM-dd.这意味着日志文件将每天更改.如果您更改yyyy-MM-dd.HH,则日志将每小时更改一次.
  • 旋转.默认值为true.如果你设置为false,我明白它只有文件.它不使用fileDateFormat参数.

但是,在我的spring boot(1.2.3.RELEASE)版本中,类org.springframework.boot.autoconfigure.web.ServerProperties没有值来更改这些属性(Tomcat子类).但是,如果您检查org.apache.catalina.valves.AccessLogValve,您可以更改此属性:

/**
 * Should we rotate our log file? Default is true (like old behavior)
 */
protected boolean rotatable = true;

/**
 * Date format to place in log file name.
 */
protected String fileDateFormat = ".yyyy-MM-dd";
Run Code Online (Sandbox Code Playgroud)

我知道也许你应该玩这些参数.我希望这篇文章有助于解决您的问题.

  • 这非常有用,但在找到我应该设置 basedir 的困难方法之前,我很难找到我的访问日志,请参阅 [此处](/sf/answers/3885403931/)。 (3认同)
  • 请注意,即将发布的 2.2.0.M1 版本将引入附加字段 `server.tomcat.accesslog.max-days`,用于在 x 天后自动删除。见[公关](https://github.com/spring-projects/spring-boot/pull/15954) (2认同)