zoukankan      html  css  js  c++  java
  • apache log4j打印日志源码出口

    Throwable.class:

    public void printStackTrace(PrintStream s) {
    synchronized (s) {
    s.println(this);
    StackTraceElement[] trace = getOurStackTrace();
    for (int i=0; i < trace.length; i++)
    s.println(" at " + trace[i]);

    Throwable ourCause = getCause();
    if (ourCause != null)
    ourCause.printStackTraceAsCause(s, trace);
    }
    }

    cause:

    private void printStackTraceAsCause(PrintStream s,
    StackTraceElement[] causedTrace)
    {
    // assert Thread.holdsLock(s);

    // Compute number of frames in common between this and caused
    StackTraceElement[] trace = getOurStackTrace();
    int m = trace.length-1, n = causedTrace.length-1;
    while (m >= 0 && n >=0 && trace[m].equals(causedTrace[n])) {
    m--; n--;
    }
    int framesInCommon = trace.length - 1 - m;

    s.println("Caused by: " + this);
    for (int i=0; i <= m; i++)
    s.println(" at " + trace[i]);
    if (framesInCommon != 0)
    s.println(" ... " + framesInCommon + " more");

    // Recurse if we have a cause
    Throwable ourCause = getCause();
    if (ourCause != null)
    ourCause.printStackTraceAsCause(s, trace);
    }

  • 相关阅读:
    UVA11375
    uva11806(容斥原理)
    uva10325(容斥原理)
    hdu4135(容斥原理)
    CF798
    多线程
    (转载)SVN 提交操作缩写(A D M R) .
    上不了网,如何判断
    (转载)myeclipse项目名称重命名
    mysql模糊查询
  • 原文地址:https://www.cnblogs.com/heyanan/p/9711790.html
Copyright © 2011-2022 走看看