我在 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.
)以数字开头,然后是任意字符串,以句点 (.) 结尾。
- 查看更多信息 Logging in Tomcat
JVM 中的参数
如果您不是从startup.sh
或startup.bat
运行Tomcat,您需要指定:
- Tomcat 的通用
logging.properties
的位置(在 Tomcat 的conf
目录中) - 管理器
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"
- Setting Tomcat Heap Size (JVM Heap) in Eclipse , 了解如何在 VM 中添加参数
关于java - 应用程序特定登录使用 JULI 的 tomcat 7?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15750564/