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

我在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.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" 
  • 在Eclipse中设置Tomcat堆大小(JVM堆) ,了解如何在VM中添加参数

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

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