我在application.yml
中有一个带有以下配置的spring-boot应用程序server:
contextPath: /rti
tomcat:
access-log-enabled: true
access-log-pattern: "%h %l %u %t \"%r\" %s %b %D"
basedir: tomcat
这会提示创建访问日志tomcat / logs / access_log.2015-02-12.txt。
我希望能够配置创建访问日志的位置和命名内容;但经过多次搜索,我开始认为这是不可能的。有谁知道如何实现这个目标?
使用logback.xml中的logback和配置,应用程序日志记录正常工作
答案 0 :(得分:7)
使用application.yml
(https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html)进行配置:
server.tomcat.accesslog:
# Enable access log:
enabled: true
# Directory in which log files are created. Can be relative to the tomcat base dir or absolute:
directory: /var/log/test
# Format pattern for access logs:
# https://tomcat.apache.org/tomcat-8.0-doc/config/valve.html#Access_Log_Valve
pattern: "%h %l %u %t "%r" %s %b %D"
# Log file name suffix:
suffix: ".log"
答案 1 :(得分:6)
您可以使用EmbeddedServletContainerCustomizer接口向嵌入式tomcat添加完全自定义的阀门。这对我有用:
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
if (container instanceof TomcatEmbeddedServletContainerFactory) {
TomcatEmbeddedServletContainerFactory factory = (TomcatEmbeddedServletContainerFactory) container;
AccessLogValve accessLogValve = new AccessLogValve();
accessLogValve.setDirectory("/var/log/test");
accessLogValve.setPattern("common");
accessLogValve.setSuffix(".log");
factory.addContextValves(accessLogValve);
} else {
logger.error("WARNING! this customizer does not support your configured container");
}
}
}
答案 2 :(得分:1)
如果您使用application.yml
进行配置。
您可以参考以下内容:
server:
tomcat:
basedir: tomcat/
accesslog:
enabled: true
prefix: access-log
suffix: .log
# datetime remote-ip "request-referr" status (time-taken)
pattern: '%t %a "%r" %s %D'
您将生成一个名称为access-log.2018.08.22.log
的文件。日志格式为
[22/Aug/2018:16:00:34 +0800] 0:0:0:0:0:0:0:1 "GET /search-query/video/123 HTTP/1.1" 200 666
在上面的示例中,相对于应用程序的工作目录,日志将在tomcat/logs
中可用。
您可以设置此项以更改日志文件名:
server:
tomcat:
accesslog:
prefix: access
file-date-format: .yyyy-MM-dd
suffix: .log
则日志格式为:access.2018-08-22.log
如果您要自定义日志格式,则可以更新pattern
有两种内部模式:
server.tomcat.accesslog.pattern=common
server.tomcat.accesslog.pattern=combined
有关更多信息,请参见此处:https://tomcat.apache.org/tomcat-8.0-doc/config/valve.html#Access_Logging