1 package ch.qos.logback.classic.model.processor; 2 3 import ch.qos.logback.classic.model.ContextNameModel; 4 import ch.qos.logback.core.Context; 5 import ch.qos.logback.core.model.Model; 6 import ch.qos.logback.core.model.processor.ModelHandlerBase; 7 import ch.qos.logback.core.model.processor.ModelHandlerException; 8 import ch.qos.logback.core.model.processor.ModelInterpretationContext; 9 10 public class ContextNameModelHandler extends ModelHandlerBase { 11 12 public ContextNameModelHandler(Context context) { 13 super(context); 14 } 15 16 static public ModelHandlerBase makeInstance(Context context, ModelInterpretationContext ic) { 17 return new ContextNameModelHandler(context); 18 } 19 20 @Override 21 protected Class<ContextNameModel> getSupportedModelClass() { 22 return ContextNameModel.class; 23 } 24 25 @Override 26 public void handle(ModelInterpretationContext mic, Model model) throws ModelHandlerException { 27 ContextNameModel contextNameModel = (ContextNameModel) model; 28 29 String finalBody = mic.subst(contextNameModel.getBodyText()); 30 addInfo("Setting logger context name as [" + finalBody + "]"); 31 try { 32 context.setName(finalBody); 33 } catch (IllegalStateException e) { 34 addError("Failed to rename context [" + context.getName() + "] as [" + finalBody + "]", e); 35 } 36 37 } 38 39 }