имя хоста в файле, созданном log4j - PullRequest
2 голосов
/ 04 июля 2011

Я использую Java 1.4.2 на Linux-машине (RHEL 5.4).

Наше приложение использует log4j для ведения журнала.Я хочу, чтобы какой-нибудь appender создавал файлы, содержащие имя хоста в имени файла.Имя хоста не должно быть жестко закодировано, вместо этого используйте системные свойства, подобные здесь (см. $ {Log4j.minutes}).

Поэтому вопрос заключается в том, есть ли имя хоста в системных свойствах.В соответствии с здесь свойство имени хоста по умолчанию отсутствует.

Это означает, что мне нужно добавить имя хоста как системное свойство из кода из командной строки (флаг -D).

Я что-то пропустил?

Ответы [ 3 ]

2 голосов
/ 04 июля 2011

Нет.В свойствах системы нет имени хоста по умолчанию.Также компьютер может иметь несколько сетевых карт, и каждой сетевой карте может быть выделено несколько IP-номеров, и у каждого IP-номера может быть свое собственное имя, поэтому может быть несколько кандидатов на то, каким может быть «имя хоста по умолчанию».

После того, как вы извлекли имя хоста, которое вам нравится, посмотрите, как вы можете сохранить его в log4j MDC - который является замаскированной картой - чтобы вы могли обратиться к ней в строке регистрации в вашей конфигурации).

0 голосов
/ 25 апреля 2012

Другим вариантом в среде linux является использование SyslogAppender, который включает хост в вывод и дает вам такие преимущества, как централизованное агрегирование журналов.Необходимо установить для атрибута заголовка значение true, чтобы разрешить отправку метки времени и хоста в соответствии со стандартным соглашением системного журнала.Если вы это сделаете, то получите такой вывод, где ксенон - это имя хоста машины:

Apr 25 14:33:17 xenon INFO Some log message

В этом примере шаблон преобразования равен %-5p %c{2} - %m%n

0 голосов
/ 04 июля 2011

Я думаю, вам придется расширить FileAppender и переопределить activOptions (), чтобы установить для свойства fileName желаемое значение. Прочитайте имя хоста из какого-либо свойства или получите его из InetAddress.getLocalHost (). GetHostName ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...