Package com.dianping.cat.report.page.model.spi.internal

Source Code of com.dianping.cat.report.page.model.spi.internal.ModelServiceWithCalSupport

package com.dianping.cat.report.page.model.spi.internal;

import java.io.PrintWriter;
import java.io.StringWriter;

import org.unidal.lookup.ContainerHolder;

import com.dianping.cat.Cat;
import com.dianping.cat.message.Transaction;
import com.dianping.cat.message.internal.DefaultEvent;
import com.dianping.cat.message.internal.DefaultMessageProducer;

public abstract class ModelServiceWithCalSupport extends ContainerHolder {
  private Transaction m_current;

  protected void logError(Throwable cause) {
    StringWriter writer = new StringWriter(2048);

    cause.printStackTrace(new PrintWriter(writer));

    if (cause instanceof Error) {
      logEvent("Error", cause.getClass().getName(), "ERROR", writer.toString());
    } else if (cause instanceof RuntimeException) {
      logEvent("RuntimeException", cause.getClass().getName(), "ERROR", writer.toString());
    } else {
      logEvent("Exception", cause.getClass().getName(), "ERROR", writer.toString());
    }
  }

  protected void logEvent(String type, String name, String status, String nameValuePairs) {
    DefaultEvent event = new DefaultEvent(type, name);

    m_current.addChild(event);

    if (nameValuePairs != null && nameValuePairs.length() > 0) {
      event.addData(nameValuePairs);
    }
    event.setStatus(status);
    event.complete();
  }

  protected Transaction newTransaction(String type, String name) {
    DefaultMessageProducer cat = (DefaultMessageProducer) Cat.getProducer();
    Transaction transaction = cat.newTransaction(m_current, type, name);

    return transaction;
  }

  protected void setParentTransaction(Transaction current) {
    m_current = current;
  }
}
TOP

Related Classes of com.dianping.cat.report.page.model.spi.internal.ModelServiceWithCalSupport

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.