一尘不染

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

tomcat

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

阅读 237

收藏
2020-06-16

共1个答案

一尘不染

要在Web应用程序中配置JULI,您需要logging.propertiesWEB- 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. logging.propertiesTomcat 的常规位置(在confTomcat目录中)
  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"
2020-06-16