如何 link catalina.out 文件嵌入 tomcat

how to link catalina.out file with embedded tomcat

我偶然发现了这个看似微不足道的问题,但我不知道应该从哪一方面来处理它。

我打包了一个 jar spring 引导应用程序并将其放在我的 CentOs 服务器上,并使用启动脚本将其作为 Systemd 服务启动。问题是这样的:我如何告诉嵌入式 tomcat 指向我在某处创建的他的特定 catalina.out 文件并在那里写入日志。我一直在思考两个方向。一种是以编程方式告诉嵌入式 tomcat catalina.out 来自我实例化连接器等的代码,第二种是告诉 systemd 脚本 catalina.out 所在的位置。但是我在网上找不到关于这个问题的任何信息。

编辑 我的嵌入式 tomcat 当前配置

@Bean 
      EmbeddedServletContainerCustomizer containerCustomizer() throws Exception {
            System.out.println("TOMCAT CALLED");
          return (ConfigurableEmbeddedServletContainer container) -> {

              if (container instanceof TomcatEmbeddedServletContainerFactory) {

                  TomcatEmbeddedServletContainerFactory tomcat = (TomcatEmbeddedServletContainerFactory) container;

                  tomcat.addConnectorCustomizers(
                          (connector) -> {
                              connector.setPort(9595);
                              connector.setRedirectPort(9444);
                              connector.setAttribute("address", "127.0.0.1");
                              //connector.setPr
                              Http11NioProtocol proto = (Http11NioProtocol) connector.getProtocolHandler();
                              proto.setConnectionTimeout(20000);

                              System.out.println("apr available: "+AprLifecycleListener.isAprAvailable());

                          }
                  );
              }
          };
      }

如有任何帮助,我们将不胜感激!谢谢

Tomcat Logging documentation 中所述,您可以将 conf/logging.properties 文件配置为在您需要的任何位置记录。对于您的情况,请查看 1catalina.org.apache.juli.FileHandler.directory 属性.

只需在 application.properties 中设置 logging.file=/location/of/catalina.out。您可以参考 Spring 引导日志文档了解更多信息:https://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html