Spring-Boot嵌入式Tomcat-生成localhost.log和cataline.out文件

时间:2018-07-12 03:07:56

标签: spring-boot tomcat logback slf4j spring-web

我有一个运行带有嵌入式tomcat的spring-boot应用程序。我们正在使用logback和slf4j进行记录。

我正在尝试通过Spring-boot应用程序生成catalina.out和localhost.log文件的方法。看起来catalina.out是由以独立模式启动tomcat容器的启动脚本生成的,而catalina.out文件不是在使用嵌入式tomcat的spring-boot应用程序中生成的。

localhost.log文件如何? localhost.log文件也一样吗?

我还如何通过spring-boot应用程序中的logback / slf4j绑定更改嵌入式tomcat的日志级别。

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

您必须像这样在Spring Boot中手动配置tomcat容器

您必须创建EmbeddedServletContainerFactory的bean并配置tomcat容器中的登录信息,以下是示例代码(我尚未对其进行测试,但可以运行)。

tomcat现在自动在类路径中搜索logback-access.xml文件,以配置日志记录

对于Spring引导版本<2.0.0

@SpringBootApplication
public class ABCApplication {


   @Bean
   public EmbeddedServletContainerFactory servletContainer() {

    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();


    LogbackValve logbackValve = new LogbackValve();

    logbackValve.setFilename("logback-access.xml");


    tomcat.addContextValves(logbackValve);


    return tomcat;
}


public static void main(String[] args) {
    SpringApplication.run(ABCApplication.class, args);
}
}

EmbeddedServletContainerFactory被TomcatServletWebServerFactory替换为Spring Boot版本2.0.0,因此请使用必需的工厂来配置tomacat。

现在您可以像这样提供您的logback-access.xml

  <?xml version="1.0" encoding="UTF-8"?>
  <configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  <encoder>
  <pattern>%h %l %u %t &quot;%r&quot; %s %b</pattern>
  </encoder>
  </appender>

 <appender-ref ref="STDOUT" />

 </configuration> 

您可以将添加程序添加到xml,以记录tomcat登录文件。

您必须查看LogbackValve

您必须为LogbackValve添加以下依赖项

   <dependency>
    <groupId>net.rakugakibox.spring.boot</groupId>
    <artifactId>logback-access-spring-boot-starter</artifactId>
  </dependency>

希望这可能对jagamot有所帮助!

答案 1 :(得分:0)

要定义嵌入式Tomcat日志路径,请将这些行添加到application.properties

server.tomcat.accesslog.directory=logs # Directory in which log files are created. Can be absolute or relative to the Tomcat base dir.
server.tomcat.accesslog.enabled=false # Enable access log.
server.tomcat.accesslog.file-date-format=.yyyy-MM-dd # Date format to place in the log file name.

用于通过登录配置嵌入式tomcat的日志级别

使用此链接

https://dzone.com/articles/configuring-logback-with-spring-boot

答案 2 :(得分:0)

  1. 1。在您的“ application.properties”中添加function showValidate(input) { var thisAlert = $(input).parent(); $(thisAlert).addClass('alert-validate'); $(thisAlert).append('<span class="btn-hide-validate">&#xf136;</span>') $('.btn-hide-validate').each(function(){ $(this).on('click',function(){ hideValidate(this); }); }); } function hideValidate(input) { var thisAlert = $(input).parent(); $(thisAlert).removeClass('alert-validate'); $(thisAlert).find('.btn-hide-validate').remove(); }
  2. 在类路径中创建一个“ logback.xml”配置文件(请自行搜索该配置文件的内容)。
  3. 您已经可以通过上述两个步骤来创建日志文件。如果通过“ java -jar”命令启动应用程序,则可能还需要“ -Djava.io.tmpdir = $ {您的日志路径}” (与“ logging.path”配置相同)参数来指定日志存储路径。