All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ch.qos.logback.classic.sift.ZSiftingDelegate.groovy Maven / Gradle / Ivy

There is a newer version: 3.9
Show newest version
package ch.qos.logback.classic.sift

import ch.qos.logback.core.spi.ContextAwareBase
import ch.qos.logback.core.Appender
import ch.qos.logback.classic.gaffer.AppenderDelegate
import ch.qos.logback.core.util.StatusPrinter

/**
 * @author Ceki Gücü
 */
class ZSiftingDelegate extends ContextAwareBase {

  String key
  String value

  ZSiftingDelegate(String key, String value) {
    this.key = key
    this.value = value
  }

  Appender appender(String name, Class clazz, Closure closure = null) {
    addInfo("About to instantiate appender of type [" + clazz.name + "]");
    Appender appender = clazz.newInstance();
    addInfo("Naming appender as [" + name + "]");
    appender.name = name
    appender.context = context
    if (closure != null) {
      AppenderDelegate ad = new AppenderDelegate(appender);
      ad.metaClass."${key}" = value
      ad.fieldsToCaccade << "${key}"
      ad.context = context;
      closure.delegate = ad;
      closure.resolveStrategy = Closure.DELEGATE_FIRST
      closure();
    }
    appender.start();
    return appender;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy