java - 从记录器中过滤不需要的信息消息

标签 java soap java.util.logging

我正在使用 java.util.logging 登录我的 Java 应用程序。我还使用 javax.xml.ws.Endpoint 来发布 SOAP 接口(interface)。

随着时间的推移,我添加了越来越多的异常,这些异常都在启动时出现,并带有如下日志条目:

Jan 24, 2011 12:29:27 PM com.sun.xml.internal.ws.model.RuntimeModeler getExceptionBeanClass
INFO: Dynamically creating exception bean Class de.wi08e.myhome.frontend.jaxws.NotLoggedInBean

我尝试使用以下过滤器来阻止它们,但我不确定使用 getLogger 获取哪个类:

/* Filter ExceptionBeanClass logs */
Logger loggerInfo = Logger.getLogger("javax.xml.ws.Endpoint");
loggerInfo.setFilter(new Filter() {

    @Override
    public boolean isLoggable(LogRecord l) {
        System.out.println(l.getMessage());
        if (l.getMessage().startsWith("Dynamically creating exception bean Class"))
            return false;
        return true;
    }

});

有谁知道如何找出哪个类创建了这个日志条目?有没有其他方法可以过滤掉这些令人不安的消息?

编辑:我也尝试了Logger.getLogger("com.sun.xml.internal.ws.model.RuntimeModeler"),但它仍然不起作用......

最佳答案

您应该能够使用以下标志运行 java 程序:-Djava.util.logging.config.file=<mylogging.properties>其中 mylogging.properties 是一个包含以下内容的文件,而不是在代码中执行。

javax.enterprise.resource.webservices.jaxws.server.level = WARN

来自http://www.docjar.com/html/api/com/sun/xml/internal/ws/model/RuntimeModeler.java.html

  186       private static final Logger logger =
  187           Logger.getLogger(
  188               com.sun.xml.internal.ws.util.Constants.LoggingDomain + ".server");

来自常量

  public static final java.lang.String LoggingDomain = "javax.enterprise.resource.webservices.jaxws";

关于java - 从记录器中过滤不需要的信息消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4781565/

相关文章:

java - spring form jsp绑定(bind)引用bean

java - 记录 SOAP 消息

java - 在 Java util 记录器的日志文件名中附加时间戳

java - jodatime-PeriodFormatter : suffix only for day/days

JAVA获取IP地址

java - 符合 JAX WS 2.0/2.1 意味着什么?

.net - 查看原始 XML 请求

Java logging API MemoryHandler 即时转储日志

java - 为什么当我记录消息时 java.util.logging 显示错误的类

java - 多线程环境下的 HashMap 和哈希表