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 }