View Javadoc
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  }