(Только) установить уровень ведения журнала для RemoteLogHandler в GWT - PullRequest
1 голос
/ 24 ноября 2011

Можем ли мы установить уровень ведения журнала только для RemoteLogHandler?

<inherits name="com.google.gwt.logging.Logging" />
<set-property name='gwt.logging.enabled' value='TRUE' />
<set-property name="gwt.logging.logLevel" value="**WARNING**"/>

<set-property name="gwt.logging.simpleRemoteHandler" value="ENABLED"/>
<set-property name='gwt.logging.popupHandler' value='ENABLED' />

// Мы хотим этого, но это не работает:

<set-property name="gwt.logging.simpleRemoteHandler.logLevel" value="**SEVERE**"/>

Ответы [ 3 ]

4 голосов
/ 24 ноября 2011

Вы можете легко сделать это наследовать от SimpleRemoteLogHandler и переопределить его isLoggable методом, например:

@Override
public boolean isLoggable(LogRecord record) {
  return super.isLoggable(record) && record.getLevel() == Level.SEVERE;
}

Затем в файле .gwt.xml для вашего модуля вы настроите GWT для заменыSimpleRemoteLogHandler со своим.Это будет работать, потому что GWT использует GWT.create для его создания.

<replace-with class="com.package.YourSimpleRemoteLogHandler">
    <when-type-is class="com.google.gwt.logging.client.SimpleRemoteLogHandler" />
    <any>
      <when-property-is name="gwt.logging.enabled" value="TRUE" />
      <when-property-is name="gwt.logging.simpleRemoteHandler" value="ENABLED" />
    </any>
</replace-with>
2 голосов
/ 24 ноября 2011

Вместо использования конфигурации gwt.xml (оставьте для свойства gwt.logging.simpleRemoteHandler значение по умолчанию DISABLED), создайте экземпляр и добавьте SimpleRemoteLogHandler самостоятельно:

SimpleRemoteLogHandler handler = new SimpleRemoteLogHandler();
handler.setLevel(Level.SEVERE);
Logger.getLogger("").addHandler(handler);

// Later...

Logger.getLogger("myLogger").log(Level.SEVERE, "A very important message.");
0 голосов
/ 24 декабря 2011

Другое решение: (которое не пропустит ни одного журнала, но может перехватить один или два журнала нижнего уровня)

        for (final java.util.logging.Handler h : Logger.getLogger("").getHandlers())
        {
            if (h instanceof com.google.gwt.logging.client.SimpleRemoteLogHandler)
            {
                ((com.google.gwt.logging.client.SimpleRemoteLogHandler) h).setLevel(logLevel);
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...