Spring启动tomcat访问日志

时间:2014-05-11 18:09:16

标签: 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 

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

如果我遗失了什么,请告诉我。根据logback.xml

中指定的配置,常规日志记录完美运行

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:16)

该配置适用于春季启动版本1.2.3.RELEASE。但是,如果你有当前版本的spring boot,那些参数会略有不同,reference here

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.

正如您所注意到的,区别在于连字符( - )。

此外,根据this document

,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";

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