我正在将我的logback.xml文件转换为groovy,并提出了将appender添加到我的自定义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中。
答案 0 :(得分: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)
方法。)