Package ch.qos.logback.core.util

Source Code of ch.qos.logback.core.util.StatusPrinter

/**
* Logback: the reliable, fast and flexible logging library for Java.
*
* Copyright (C) 1999-2006, QOS.ch
*
* This library is free software, you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation.
*/

package ch.qos.logback.core.util;

import java.io.PrintStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;

import ch.qos.logback.core.Context;
import ch.qos.logback.core.status.Status;
import ch.qos.logback.core.status.StatusManager;

public class StatusPrinter {
 
  private static PrintStream ps = System.out;

  static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss,SSS");
 
  public static void setPrintStream(PrintStream printStream) {
    ps = printStream;
  }
 
  public static void print(Context context) {
    if (context == null) {
      throw new IllegalArgumentException("Context argument cannot be null");
    }

    StatusManager sm = context.getStatusManager();
    if (sm == null) {
      ps.println("WARN: Context named \"" + context.getName()
          + "\" has no status manager");
    } else {
      print(sm);
    }

  }

  public static void print(StatusManager sm) {
    synchronized (sm) {
      Iterator it = sm.iterator();
      while (it.hasNext()) {
        Status s = (Status) it.next();
        print("", s);
      }
    }
  }
 
  private static void print(String indentation, Status s) {
    String prefix;
    if(s.hasChildren()) {
       prefix = indentation + "+ ";
    } else {
      prefix = indentation + "|-";
    }
   
    if(simpleDateFormat != null) {
      Date date = new Date(s.getDate());
      String dateStr = simpleDateFormat.format(date);
      ps.print(dateStr);
      ps.print(" ");
    }
    ps.println(prefix+s);  
   
    if (s.getThrowable() != null) {
      s.getThrowable().printStackTrace(ps);
    }
    if(s.hasChildren()) {
      Iterator<Status> ite = s.iterator();
      while(ite.hasNext()) {
        Status child = ite.next();
        print(indentation+"  ", child);
      }
     
    }
  }
 
}
TOP

Related Classes of ch.qos.logback.core.util.StatusPrinter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.