Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Logback: the reliable, generic, fast and flexible logging framework. Copyright (C) 1999-2011, QOS.ch. All rights reserved. This program and the accompanying materials are dual-licensed under either the terms of the Eclipse Public License v1.0 as published by the Eclipse Foundation or (per the licensee's choosing) under the terms of the GNU Lesser General Public License version 2.1 as published by the Free Software Foundation.
 
 package ch.qos.logback.classic.pattern;
 
 import java.util.List;
 import java.util.Map;
 
Add a stack trace in case the event contains a Throwable.

Author(s):
Ceki Gülcü
 
 
   int lengthOption;
 
   int errorCount = 0;
 
   @SuppressWarnings("unchecked")
   public void start() {
 
     String lengthStr = getFirstOption();
 
     if (lengthStr == null) {
        = .;
     } else {
       lengthStr = lengthStr.toLowerCase();
       if ("full".equals(lengthStr)) {
          = .;
       } else if ("short".equals(lengthStr)) {
          = 2;
       } else {
         try {
           // we add one because, printing starts at offset 1
            = Integer.parseInt(lengthStr) + 1;
         } catch (NumberFormatException nfe) {
           addError("Could not parse [" + lengthStr + "] as an integer");
            = .;
         }
       }
     }
 
     final List optionList = getOptionList();
 
     if (optionList != null && optionList.size() > 1) {
       final int optionListSize = optionList.size();
       for (int i = 1; i < optionListSizei++) {
         String evaluatorStr = (StringoptionList.get(i);
         Context context = getContext();
         Map evaluatorMap = (Mapcontext.getObject(.);
         EventEvaluator<ILoggingEventee = (EventEvaluator<ILoggingEvent>) evaluatorMap
                 .get(evaluatorStr);
         addEvaluator(ee);
       }
     }
     super.start();
   }
 
   private void addEvaluator(EventEvaluator<ILoggingEventee) {
     if ( == null) {
     }
     .add(ee);
   }
 
   public void stop() {
      = null;
     super.stop();
   }
 
   protected void extraData(StringBuilder builderStackTraceElementProxy step) {
     // nop
   }
 
   public String convert(ILoggingEvent event) {
 
    IThrowableProxy tp = event.getThrowableProxy();
    if (tp == null) {
      return .;
    }
    // an evaluator match will cause stack printing to be skipped
    if ( != null) {
      boolean printStack = true;
      for (int i = 0; i < .size(); i++) {
        EventEvaluator<ILoggingEventee = .get(i);
        try {
          if (ee.evaluate(event)) {
            printStack = false;
            break;
          }
        } catch (EvaluationException eex) {
          ++;
          if ( < .) {
            addError("Exception thrown for evaluator named [" + ee.getName()
                    + "]"eex);
          } else if ( == .) {
            ErrorStatus errorStatus = new ErrorStatus(
                    "Exception thrown for evaluator named [" + ee.getName() + "].",
                    thiseex);
            errorStatus.add(new ErrorStatus(
                    "This was the last warning about this evaluator's errors."
                            + "We don't want the StatusManager to get flooded."this));
            addStatus(errorStatus);
          }
        }
      }
      if (!printStack) {
        return .;
      }
    }
    return throwableProxyToString(tp);
  }
    StringBuilder buf = new StringBuilder(32);
    IThrowableProxy currentThrowable = tp;
    while (currentThrowable != null) {
      subjoinThrowableProxy(bufcurrentThrowable);
      currentThrowable = currentThrowable.getCause();
    }
    return buf.toString();
  }
    ThrowableProxyUtil.subjoinFirstLine(buftp);
    int commonFrames = tp.getCommonFrames();
    boolean unrestrictedPrinting =  > stepArray.length;
    int maxIndex = (unrestrictedPrinting) ? stepArray.length : ;
    if (commonFrames > 0 && unrestrictedPrinting) {
      maxIndex -= commonFrames;
    }
    for (int i = 0; i < maxIndexi++) {
      String string = stepArray[i].toString();
      buf.append(.);
      buf.append(string);
      extraData(bufstepArray[i]); // allow other data to be added
    }
    if (commonFrames > 0 && unrestrictedPrinting) {
      buf.append("\t... ").append(tp.getCommonFrames()).append(
              " common frames omitted").append(.);
    }
  }
New to GrepCode? Check out our FAQ X