Как добавить несколько приложений в мой Custom Appender, используя groovy config? - PullRequest
2 голосов
/ 02 сентября 2011

Я преобразовываю свой файл logback.xml в groovy, и передо мной стоит задача добавить дополнения к моему настраиваемому приложению!

В настоящее время я делаю это так:

<appender name="MyCustomAppender" class="url.MyCustomAppender">
    <param name="BufferSize" value="10000"/>
    <param name="Blocking" value="true"/>
    <appender-ref ref="FILE"/>
    <!-- <appender-ref ref="CONSOLE"/> -->
    <appender-ref ref="CONSOLE_ERR"/>
</appender>

Iпопробовал что-то вроде этого с groovy, но это не удалось:

   appender("MyCustomAppender", MyCustomAppender) {
    BufferSize = 10000
    Blocking = true
    appender-ref('ref':"CONSOLE_ERR");
        appender-ref('ref':"FILE"); 
   }

Я не могу изменить пользовательский аппендер, как в общем коде, так что это не решение.Я просто хотел бы сделать то же самое, что происходит в XML, но в Groovy.

1 Ответ

2 голосов
/ 10 сентября 2011

Попробуйте это:

def consoleErrAppender = appenderList.find { it -> it.name == "CONSOLE_ERR" }
def fileAppender = appenderList.find { it -> it.name == "FILE" }

appender("MyCustomAppender", MyCustomAppender) {
    BufferSize = 10000
    Blocking = true
    appender = consoleErrAppender
    appender = fileAppender    
}

Полагаю, ваш MyCustomAppender реализует интерфейс AppenderAttachable (или, по крайней мере, имеет метод public void addAppender(Appender<E> newAppender)).

...