Удаление сообщения запуска JGroups: GMS

При запуске JGroups 2.7.0. GA записывает в System.out сообщение следующего содержания:

---------------------------------------------------------
GMS: address is 10.0.3.35:48641 (cluster=blabla)
---------------------------------------------------------

Я хочу либо подавить его, либо перенаправить с помощью Log4j (который использует остальная часть фреймворка).

Идеи?


Я не хочу перенаправлять System.out сам по себе, поскольку это обычно вызывает больше проблем, чем пользы.


person Robert Munteanu    schedule 19.06.2009    source источник


Ответы (3)


Вы можете запретить печать адреса GMS, установив в своем XML

‹pbcast.GMS print_local_addr="false" ...›

Работает и на JGroups 2.5.1.

person Community    schedule 10.08.2009

Вот как мне удалось распечатать строку GMS в журналах.

Сначала отключить

<pbcast.GMS print_local_addr="false"> 

тогда,

String clusterName = channel.getClusterName();
String clusterAddress = channel.getAddressAsString();
String localAddress = channel.getProtocolStack()
        .dumpStats()
        .get("UDP")
        .get("local_physical_address")
        .toString();

StringBuilder border = new StringBuilder();
String GMS = String.format("GMS: address=%s, cluster=%s, physical address=%s", 
        clusterAddress, 
        clusterName, 
        localAddress
);
logger.info("{}", GMS);

Работает с версией 4.2.3.Final.

person WhiteScars    schedule 08.12.2020

Вы не можете перенаправить System.out на log4j, что не имеет смысла. В конце концов, как log4j напечатает что-нибудь? Он застрял бы в петле.

person mP.    schedule 19.06.2009
comment
Спасибо за ответ. Я имел в виду не перенаправление System.out - я указал это, а перенаправление этого единственного сообщения JGroups. - person Robert Munteanu; 19.06.2009
comment
В JBoss происходят некоторые махинации со STDOUT. Когда вы печатаете что-то в System.out, вы получаете запись в журнале log4j, например 15:32:51,919 [] INFO [STDOUT] бла-бла. Итак, что-то перенаправляет стандартный вывод и назначает его специальной категории log4j. - person skaffman; 19.06.2009
comment
@Skaffman Я имел в виду, что, поскольку исходный настоящий неукрашенный дескриптор Sysout завернут в беспорядок, чтобы попытаться захватить отпечатки Sys.out. В конце концов, где бы вы их напечатали - себе, в результате чего снова поймали - и т.д... это не заканчивается. Если бы у вас был оригинальный Sysout, то можно было бы делать что угодно. Нетрудно захватить отпечатки Sysout, просто заменив оригинал, но важно сохранить оригинал, чтобы вы могли печатать на него, когда захотите. - person mP.; 20.06.2009