Spring boot Spring引导tomcat访问日志

Spring boot Spring引导tomcat访问日志,spring-boot,Spring Boot,我根据spring引导参考文档启用了tomcat访问日志。但它不能正常工作。当我启用它时,access日志文件被创建,我可以看到当天记录的请求。但是在第二天开始的时候,我没有看到任何新的文件。21时开始记录。第三天,它从02小时开始记录。从第4天起,不创建访问日志 以下是我使用的属性 server.tomcat.access-log-enabled=true server.tomcat.access-log-pattern=%h %l %u %t "%r" %s %b %D server.tom

我根据spring引导参考文档启用了tomcat访问日志。但它不能正常工作。当我启用它时,access日志文件被创建,我可以看到当天记录的请求。但是在第二天开始的时候,我没有看到任何新的文件。21时开始记录。第三天,它从02小时开始记录。从第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 
在“跟踪”下,已创建服务器文件夹日志和工作文件夹

如果我遗漏了什么,请告诉我。根据logback.xml中指定的配置,常规日志记录工作正常


提前感谢您的帮助。

该配置在spring boot 1.2.3.0版中对我有效。但是,如果您使用的是当前版本的spring boot,则这些参数会略有不同:

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

此外,tomcat访问日志配置包括以下参数,具体取决于:

  • fileDateFormat。默认值为yyyy-MM-dd。这意味着日志文件将每天更改。如果更改为yyyy-MM-dd.HH,日志将每小时更改一次
  • 可旋转。默认值为true。如果设置为false,我知道它将只有一个文件。它不使用fileDateFormat参数
但是,在我的SpringBoot版本(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";

我知道也许你应该使用这些参数。我希望这篇文章能帮助解决你的问题。

对我有用。另请参阅一个全天候运行且据我所知始终具有访问日志的应用程序。也许没有人在没有日志记录的时候使用过你的日志?从第4天开始,访问日志将进入/tmp/tomcat..8081/logs文件夹。8081是我们的管理端口。另一个观察是第2天00到21小时之间的访问日志,第3天00到02小时之间的访问日志位于/tmp/tomcat..8081文件夹中。我不明白为什么spring要在管理端口文件夹下记录请求,“/tmp/*”文件夹是basedir的默认值,所以我想这不难理解。你说的“管理”是什么意思?是否是执行器(即,您在某处设置了“management.port=8081”?顺便说一句,这些文件中没有Spring日志记录的内容,而是Tomcat。嗨,你能修复这个吗?问题是,当管理端口不同时,将使用完全不同的web应用程序上下文创建完全不同的tomcat。而且webapp上下文不知道基本路径。我不认为这是tomcat的问题-更多的是EndpointWebMvCAutoConfiguration。createChildManagementContext()应该选择管理。特定的basePath或仅使用原始webapp的basePath。需要一个清晰的、定义好的日志访问路径。因此,请提供帮助。请注意,即将发布的2.2.0.M1版本将引入额外的字段
server.tomcat.accesslog.max days
,用于在x天后自动删除。这是非常有用的,但是我很难找到我的访问日志,直到我想出了设置basedir的艰难方法,请参阅。
/**
 * 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";