Tomcat встроенный с Juli не может отделить регистрацию контекста сервлета WebApp от журнала контейнеров CatalinaJAVA

Программисты JAVA общаются здесь
Anonymous
Tomcat встроенный с Juli не может отделить регистрацию контекста сервлета WebApp от журнала контейнеров Catalina

Сообщение Anonymous »

Я использую Juli Logger от Tomcat и файл Properties для запуска сервера Tomcat Embed, в котором есть один веб -прип с именем MyApp на LocalHost. (Рабочий каталог:/users/me/tomcatembedtest )
public class Main {
public static void main(String[] args) {
Tomcat tomcat = new Tomcat();
tomcat.setBaseDir(new File("resource").getAbsolutePath());
tomcat.setPort(8080);
tomcat.getConnector();
tomcat.addWebapp("/myapp", new File("/Users/me/TomcatEmbedTest/resource/webapps/myapp").getAbsolutePath());
try {
tomcat.start();
} catch (LifecycleException e) {
throw new RuntimeException(e);
}
}
}
< /code>
Чтобы использовать Juli, я использовал следующие аргументы: < /p>
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=/Users/me/TomcatEmbedTest/resource/logging.properties

В файле свойств я обозначаю журнал контекста сервлета myApp для регистрации с использованием 3myApp.org.apache.juli.asyncfileHandler , который входит в систему для файла с префиксом myApp :
3myapp.org.apache.juli.AsyncFileHandler.prefix = myapp.

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/myapp].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/myapp].handlers = 3myapp.org.apache.juli.AsyncFileHandler
< /code>
Для читаемости файл полного свойства добавляется в нижней части вопроса.req.getServletContext().log("========my web app's log=====");

Для чтения, полный класс сервлета добавляется в нижней части вопроса..
├── catalina.2025-08-17.log
├── localhost.2025-08-17.log
└── myapp.2025-08-17.log

Тем не менее, localhost и журнал MyApp просто пуст. И журнал ServletContext#log в моем сервисе eark at Catalina log.
Когда я развертываю одно и то же веб-приложение внутри автономного Tomcat и использую один и тот же файл свойств, ServletContext#log myApp.2025-08-17.log .
Интересно, является ли это ошибкой для Tomcat-Embed, или Tomcat-embed по своей природе не поддерживает отдельные журналы для контекста веб-приложений?@WebServlet("/test")
public class TestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.getServletContext().log("========my web app's log=====");
resp.getWriter().write("Hello, this is /test servlet!");
}
}
< /code>
Файл моих свойств: < /p>
handlers = java.util.logging.ConsoleHandler, 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3myapp.org.apache.juli.AsyncFileHandler

.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8

2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8

3myapp.org.apache.juli.AsyncFileHandler.level = FINE
3myapp.org.apache.juli.AsyncFileHandler.directory = logs
3myapp.org.apache.juli.AsyncFileHandler.prefix = myapp.
3myapp.org.apache.juli.AsyncFileHandler.maxDays = 90
3myapp.org.apache.juli.AsyncFileHandler.encoding = UTF-8

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8

org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = 1catalina.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/myapp].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/myapp].handlers = 3myapp.org.apache.juli.AsyncFileHandler

< /code>
мои зависимости: < /p>
.
├── tomcat-annotations-api-9.0.108-sources.jar
├── tomcat-annotations-api-9.0.108.jar
├── tomcat-embed-core-9.0.108-sources.jar
├── tomcat-embed-core-9.0.108.jar
├── tomcat-embed-logging-juli-9.0.0.M6-sources.jar
└── tomcat-embed-logging-juli-9.0.0.M6.jar



Подробнее здесь: https://stackoverflow.com/questions/797 ... g-from-cat

Вернуться в «JAVA»