2011-09-01 57 views
2

我正在將我的logback.xml文件轉換爲groovy,並面臨將appender添加到我的自定義appender的挑戰!如何使用groovy配置將多個appender添加到我的Custom Appender?

目前,我不喜歡這樣寫道:

<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> 

我想是這樣的使用Groovy,但它失敗:

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

我不能更改自定義的appender,因爲它是在共享代碼,所以這不是一個解決方案。我只想做與xml中發生的完全相同的事情,但在groovy中。

回答

2

試試這個:

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)方法)。

+0

嘿謝謝!工作! – Raj