[logback-user] Joran and variable substitution

Oliver Geishuettner Garbage at gmx.de
Thu Dec 30 22:18:40 CET 2010


Thanks for the hint, this lead me in the right direction !
I found out that a simple context.subst in e.g. the begin part of the action is sufficient. To make things easier for me I created a small helper class: 
 
public final class VariableHelper {
 final static Logger log = LoggerFactory.getLogger(VariableHelper.class);
 
 private InterpretationContext context = null;
 private Attributes attrs = null;
 
 private VariableHelper( InterpretationContext context, Attributes attrs ) {
  this.context = context;
  this.attrs = attrs;  
 }
 
 public static String replace(final InterpretationContext ic,
   final String str) {
  String ret = null;
  log.debug("before subst '{}'", str);
  ret = ic.subst(str);
  log.debug("after subst: '{}'", ret);
 
  return ret;
 }
 
 public static String replace(final InterpretationContext ic,
   final Attributes attrs, final String attrName) {
  return replace(ic, attrs.getValue(attrName));
 }
 
 public String replace( String attrName ) {
  return replace( context, attrs, attrName );
 }
 
 public static VariableHelper createInstance( final InterpretationContext context, final Attributes attrs ) {
  return new VariableHelper( context, attrs );
 }
}
 
This class can be used like this:
 
public class FooBarAction extends Action {
 public void begin(InterpretationContext context, String arg1,
   Attributes attributes) throws ActionException {
  VariableHelper vh = VariableHelper.createInstance(context, attributes);
 
  String foo = vh.replace("foo");
  String bar = vh.replace("sbar");
...
 
This is a replacement for:
 
String foo = attributes.getValue( "foo" );
foo = context.subst("foo" );
 
Perhaps this is of help for somebody.
-------- Original-Nachricht --------
> Datum: Thu, 30 Dec 2010 13:35:37 +0100
> Von: Ceki Gulcu <ceki at qos.ch>
> An: logback users list <logback-user at qos.ch>
> Betreff: Re: [logback-user] Joran and variable substitution

> Hi Marge,
> 
> Variable substitution is done by Joran actions on an individual
> basis. Search for usages of the subst() method of the
> InterpretationContext class.

-- 
Neu: GMX De-Mail - Einfach wie E-Mail, sicher wie ein Brief!  
Jetzt De-Mail-Adresse reservieren: http://portal.gmx.net/de/go/demail


More information about the Logback-user mailing list