我的申请. yml是:
server:
tomcat:
accesslog:
enabled: true
basedir: my-tomcat
我们使用spring boot 1.4.3.RELEASE,我想用以下内容配置一个logback-access.xml(在src/main/resources下):
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- always a good activate OnConsoleStatusListener -->
<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%h %l %u %user %date "%r" %s %b</pattern>
</encoder>
</appender>
<appender-ref ref="STDOUT" />
</configuration>
我可以在my-tomcat文件夹下看到一个access_log.2017-01-03.log文件,其中包含正确的访问日志,但在我的concole上注意到,似乎没有读取配置文件logback-access.xml。
有什么想法吗?
埃里克
尽管我为子孙后代发布我简单的工作代码已经迟到了。
可通过以下步骤在控制台日志中打印< code>logback的访问日志:
implementation group: 'ch.qos.logback', name: 'logback-access', version: '1.2.3'
@Bean
public TomcatServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addContextValves(new LogbackValve());
return tomcat;
}
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<Pattern>combined</Pattern>
<Pattern>[ACCESS] %h %l %u %t{yyyy-MM-dd HH:mm:ss.SSS} %s %b %D ms</Pattern>
</encoder>
</appender>
<appender-ref ref="STDOUT" />
</configuration>
访问日志将在控制台中打印为
"[ACCESS] <host> <date> "<httpmethod> <httpuri> HTTP/1.1" <httpstatus> "<timetaken in millisecond> ms""
是我弄错了,还是Spring Boot本身不支持这一点?
资料来源:https://github.com/spring-projects/spring-boot/issues/2609:
嘿,我正试图让登录访问tomcat和spring boot一起工作。有人能够开箱即用吗?还是需要设置一些必要的管道?
...
As a workaround, you can copy the access xml from the class path to the filesystem and run it there as part of your configuration class
Files.copy(this.getClass().getResourceAsStream("/logback-access.xml"),Paths.get("log-access.xml"),StandardCopyOption.REPLACE_EXISTING);
logbackValve.setFilename("log-access.xml");
简单地添加依赖关系应该可以做到:
<dependency>
<groupId>net.rakugakibox.spring.boot</groupId>
<artifactId>logback-access-spring-boot-starter</artifactId>
<version>2.7.0</version>
</dependency>
关于上面提到的Spring启动问题,有人发布了这个:
从 logback 1.1.6 开始,无需任何解决方法即可将日志回溯访问配置文件作为资源加载。参考编号: http://jira.qos.ch/browse/LOGBACK-1069
您所要做的就是: 日志回退Valve.set文件名(“日志访问.xml”);
问题内容: 我用http 9200打开了几个客户端节点,以切断ElasticSearch查询/索引。我想通过http 9200从客户端记录访问日志,就像Http- Apache拥有access.log一样。我应该如何在ES中启用它。 问题答案: Elasticsearch本身没有这样的东西。 但是,如果安装Shield插件,则可以通过将其添加到配置文件中来启用审核。 然后,您将在ES日志文件夹中获
我希望将所有内部Springboot日志消息定向到log4j,以便这些消息遵循我的log4j属性,但这是无效的。 登录中。config=file:/data/log/report-log4j。属性 启动springboot,它会输出 log4j:WARN找不到记录器(org.springframework.web.context.support.StandardServleteEnvironmen
在像这样的典型Spring Boot应用程序中,我们如何配置它来使用“自定义”日志配置? 例如,在我的应用程序运行的当前环境中,日志正在导致错误,我如何使用其他日志例如:
在logback.xml中,您可以定义几个< code > 如果我有这样的东西: “development”概要文件是包含“developer”的两个概要文件的联合,还是“developer”概要文件只激活前一个或后一个概要文件?
我最近切换到ApacheLog4J2,仍然找不到使用log4j2配置hibernate日志的方法。xml。 因为我找不到解决这个问题的方法,我仍然使用log4j.properties文件显式Hibernate。这不是最好的解决方案,因为我的log4j2.xml使用JPA appender(将日志写入数据库)。我不想为Hibernate编写单独的逻辑。 有没有办法使用log4j2配置Hibernat
我将spring boot配置为使用log4j和pom.xml中的这些行: