如何启用嵌入式 tomcat 日志记录

use*_*805 2 logging tomcat

我在我的java应用程序中使用嵌入式tomcat。下面是我的源代码。但是 tomcat 没有生成任何日志。

        embedded = new Embedded();
        embedded.setDebug(3);

        org.apache.catalina.logger.FileLogger embeddedFileLogger = new org.apache.catalina.logger.FileLogger();         
        embeddedFileLogger.setDirectory(tomcatHome+"/log");
        embeddedFileLogger.setPrefix("Embedded_log_");
        embeddedFileLogger.setSuffix(".txt");
        embeddedFileLogger.setTimestamp(true);
        embeddedFileLogger.setVerbosity(3);



        //embedded.setLogger(new SystemOutLogger());
        engine = embedded.createEngine();
        //engine.setLogger(embeddedFileLogger);
        embeddedFileLogger.setContainer(engine);
        engine.setDefaultHost("localhost");

        host = embedded.createHost("localhost", tomcatHome + "/webapps");
        //host.setLogger(embeddedFileLogger);
        engine.addChild(host);

        _context = embedded.createContext("", tomcatHome + "/webapps/ROOT");
        host.addChild(_context);

        embedded.addEngine(engine);

        CoyoteConnector connector = (CoyoteConnector)embedded.createConnector(InetAddress.getByName(ipAddress), port, false);               
                   embedded.addConnector(connector);
        embedded.setLogger(embeddedFileLogger);
        embedded.start();
Run Code Online (Sandbox Code Playgroud)

请让我知道如何通过代码或 tomcat 配置启用嵌入式 tomcat 日志记录。

mar*_*n-g 5

这是对我有用的(Tomcat 9.0.38):

添加系统属性以指向我的日志记录配置:

-Djava.util.logging.config.file=/absolute/path/to/logging.properties
Run Code Online (Sandbox Code Playgroud)

其内容logging.properties是:

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8
handlers = java.util.logging.ConsoleHandler
org.apache.coyote.http2.level = FINE
Run Code Online (Sandbox Code Playgroud)