特定应用程序使用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.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"
- 在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