我试图实现一个应用程序级别的记录器(webapps部署在weblogic中) - 使用java.util.logging。
我从Apache JULI日志系统中取得ClassLoaderLogManager,因为它已经实现了应用程序级日志记录。
所以这就是我的servlet代码(SimpleServlet.java)的外观:
ClassLoaderLogManager ClassLoaderLogManager = new ClassLoaderLogManager () ;
String nameoflogger = SimpleServlet.class.getName() ;
boolean status = ClassLoaderLogManager .addLogger(nameoflogger);
if(status)
{
Logger logger = ClassLoaderLogManager .getLogger(nameoflogger);
logger.log(Level.FINEST, "testing SimpleServlet FINEST");
logger.log(Level.INFO, "testing SimpleServlet INFO");
logger.log(Level.SEVERE, "testing SimpleServlet SEVERE");
}
ClassLoaderLogManager .reset();我有java_home / jre / lib中的logging.properties文件,如下所示
handlers= java.util.logging.FileHandler
#.level= INFO
# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = %h/java_%g.log
java.util.logging.FileHandler.limit = 200
java.util.logging.FileHandler.count = 10
java.util.logging.FileHandler.append = true
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
# Limit the message that are printed on the console to INFO and above.
#java.util.logging.ConsoleHandler.level = INFO
#java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
package8.SimpleServlet.handler = java.util.logging.FileHandler
############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################
# For example, set the com.xyz.foo logger to only log SEVERE
# messages:
package8.SimpleServlet.level = SEVERE所以当我运行webapp时 - 当我访问webapp时,我希望创建java_0.log,java_1.log(日志文件旋转)等。但是我也看到java0.log.lck,java1.log.lck。
日志文件仅按预期显示严重级日志。
为什么会发生?如果我在java代码端创建一个处理程序,关闭处理程序将解决问题。买y不是在这里处理?
或者是因为我在使用org.apache.juli.ClassLoaderLogManager时使用java.util.logging.FileHandler而不是org.apache.juli.FileHandler
??