3

我在 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
4

2 回答 2

7

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

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.sh或运行 Tomcat,则startup.bat需要指定:

  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"
于 2013-04-01T23:41:17.960 回答
0

你确定你写的是正确的记录器,即Logger.getLogger("com.xyz")

我认为您在 logging.propertiescom.xyz.level=ALL com.xyz.handlers=org.apache.juli.FileHandler中写入时可能会出错:如果您实际写入 logger Logger.getLogger(com.xyz.YourClass.class),那是因为在日志记录属性文件中您应该写下您的情况的记录器名称com.xyz.YourClass

于 2013-08-13T13:04:59.403 回答