Могу ли я создать приложение log4j самостоятельно? - PullRequest
0 голосов
/ 03 марта 2011

Я хотел бы реализовать архитектуру, согласно которой пользователь определяет app4 log4j через свойства log4j как обычно, но этот appender является просто буфером и делегирует сообщения журнала одному из нескольких содержащихся в нем appender.
Я не хочу определять эти приложения в файле log4j peroprties, я хочу, чтобы они были скрыты, чтобы ни один пользователь не мог изменить свою конфигурацию.Существует ли механизм, с помощью которого я могу создавать новые приложения log4j, сохранять их как элементы данных другого приложения, которое расширяет org.apache.log4j.AppenderSkeleton и публикуется и привязывается к моему регистратору, а затем вызывать эти приложения из скелета?
что-то вроде:

public class MemAppender extends AppenderSkeleton

private Appender delegateAppender = new RollingFileAppender();
...//set all the proprerties of the rolling file appender ...

public void append(LoggingEvent event){
  //do my business logic and then:
  delegateAppender.append(event); 
}

Как реализовать такой механизм?

1 Ответ

0 голосов
/ 10 марта 2011

Очевидно, что нет особой проблемы при создании приложения log4j, такого как RollingFileAppender, и при вызове его из другого приложения. Мне просто нужно было установить все необходимые атрибуты, такие как MaxFileSize, File, maxBackupIndex и т. Д.

...