java - 应用程序特定登录使用 JULI 的 tomcat 7?

标签 java tomcat logging

我在 tomcat 7 中使用 java 系统登录,但没有日志语句写入日志。我已将此文件添加到我的 WEB-INF/classes 中。日志文件“new-xyz-test”被创建(所以我至少有一些正确的配置)但它是空的 - 没有日志语句打印到它。

handlers=java.util.logging.ConsoleHandler, org.apache.juli.FileHandler

org.apache.juli.FileHandler.level=ALL
org.apache.juli.FileHandler.directory=${catalina.base}/logs
org.apache.juli.FileHandler.prefix=new-xyz-test-

java.util.logging.ConsoleHandler.level=ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

com.xyz.level=ALL
com.xyz.handlers=org.apache.juli.FileHandler

最佳答案

要在 Web 应用程序中配置 JULI,您需要在 WEB-INF/classes 目录中有一个 logging.properties 文件。如果您使用默认处理程序,您可能会丢失消息。您需要在文件中为处理程序指定前缀。

handlers=1FILE.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
.handlers=java.util.logging.ConsoleHandler

1FILE.org.apache.juli.FileHandler.level=FINEST
1FILE.org.apache.juli.FileHandler.directory=/app-logs
1FILE.org.apache.juli.FileHandler.prefix=file-1

java.util.logging.ConsoleHandler.level=FINE
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter

com.xyz.level=INFO
com.xyz.handlers=1FILE.org.apache.juli.FileHandler

com.abc.level=INFO
com.abc.handlers=java.util.logging.ConsoleHandler

一个 处理程序前缀(例如 1FILE.)以数字开头,然后是任意字符串,以句点 (.) 结尾。


JVM 中的参数

如果您不是从startup.shstartup.bat 运行Tomcat,您需要指定:

  1. Tomcat 的通用 logging.properties 的位置(在 Tomcat 的 conf 目录中)
  2. 管理器 org.apache.juli.ClassLoaderLogManager。这很重要,因为允许您配置 对于每个 Web 应用程序不同的登录选项。默认情况下,一个 JVM 进程只能有一个配置文件。),

类似下一个(我用的是eclipse):

-Djava.util.logging.config.file="C:\Users\Paul\workspaces\utils\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf\logging.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

默认情况下,java.util.logging 读取 JDK 或 JRE 中包含的文件,例如:

"C:\Software\jdk1.7.0_17\jre\lib\logging.properties"

关于java - 应用程序特定登录使用 JULI 的 tomcat 7?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15750564/

相关文章:

javascript - console.log 是如何工作的?

java - 登录 Spark

linux - syslog 日志/事件生成器 linux

java - 我有 32 位、64 位 Java 还是两者都有?

java - 在 Java 构建路径上找不到父类(super class) "javax.servlet.http.HttpServlet"

java - 使用来自共享类加载器的 EHCache 时出现 ClassCastException

java - 当我在 tomcat 的 web.xml 中的过滤器之前配置一个 servlet 时会发生什么?

java - 如何将 tomcat 应用程序 Docker 化

java - @WebMvcTest 测试类中的 UnsatisfiedDependencyException

java - 部署到 Heroku 时找不到 Play Framework 2.3.6 (Java) javascript 和样式表