tomcat9.0与jdk匹配_tomcat9支持的jdk版本

后端 (6) 2024-04-07 13:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说tomcat9.0与jdk匹配_tomcat9支持的jdk版本,希望能够帮助你!!!。
Apache Tomcat 9

The internal logging for Apache Tomcat uses JULI, a packaged renamed fork of Apache Commons Logging that is hard-coded to use the framework. This ensures that Tomcat's internal logging and any web application logging will remain independent, even if a web application uses Apache Commons Logging.

To configure Tomcat to use an alternative logging framework for its internal logging, follow the instructions provided by the alternative logging framework for redirecting logging for applications that use . Keep in mind that the alternative logging framework will need to be capable of working in an environment where different loggers with the same name may exist in different class loaders.

A web application running on Apache Tomcat can:

  • Use any logging framework of its choice.
  • Use system logging API, .
  • Use the logging API provided by the Java Servlets specification,

The logging frameworks used by different web applications are independent. See class loading for more details. The exception to this rule is . If it is used directly or indirectly by your logging library then elements of it will be shared across web applications because it is loaded by the system class loader.

Java logging API — java.util.logging

Apache Tomcat has its own implementation of several key elements of API. This implementation is called JULI. The key component there is a custom LogManager implementation, that is aware of different web applications running on Tomcat (and their different class loaders). It supports private per-application logging configurations. It is also notified by Tomcat when a web application is unloaded from memory, so that the references to its classes can be cleared, preventing memory leaks.

This implementation is enabled by providing certain system properties when starting Java. The Apache Tomcat startup scripts do this for you, but if you are using different tools to run Tomcat (such as jsvc, or running Tomcat from within an IDE), you should take care of them by yourself.

More details about java.util.logging may be found in the documentation for your JDK and on its Javadoc pages for the package.

More details about Tomcat JULI may be found below.

Servlets logging API

The calls to to write log messages are handled by internal Tomcat logging. Such messages are logged to the category named


This logging is performed according to the Tomcat logging configuration. You cannot overwrite it in a web application.

The Servlets logging API predates the API that is now provided by Java. As such, it does not offer you much options. E.g., you cannot control the log levels. It can be noted, though, that in Apache Tomcat implementation the calls to or are logged at the INFO level. The calls to or are logged at the SEVERE level.

Console

When running Tomcat on unixes, the console output is usually redirected to the file named . The name is configurable using an environment variable. (See the startup scripts). Whatever is written to will be caught into that file. That may include:

  • Uncaught exceptions printed by
  • Thread dumps, if you requested them via a system signal

When running as a service on Windows, the console output is also caught and redirected, but the file names are different.

The default logging configuration in Apache Tomcat writes the same messages to the console and to a log file. This is great when using Tomcat for development, but usually is not needed in production.

Old applications that still use or can be tricked by setting attribute on a Context. If the attribute is set to , the calls to during request processing will be intercepted, and their output will be fed to the logging subsystem using the calls.
Note, that the feature is actually a trick, and it has its limitations. It works only with direct calls to , and only during request processing cycle. It may not work in other threads that might be created by the application. It cannot be used to intercept logging frameworks that themselves write to the system streams, as those start early and may obtain a direct reference to the streams before the redirection takes place.

Access logging

Access logging is a related but different feature, which is implemented as a . It uses self-contained logic to write its log files. The essential requirement for access logging is to handle a large continuous stream of data with low overhead, so it only uses Apache Commons Logging for its own debug messages. This implementation approach avoids additional overhead and potentially complex configuration. Please refer to the Valves documentation for more details on its configuration, including the various report formats.

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。