package com.geccocrawler.gecco.spider.render;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.geccocrawler.gecco.spider.SpiderBean;
import com.geccocrawler.gecco.spider.SpiderThreadLocal;
/**
* 注入bean的多个filed异常
*
* @author huchengyi
*
*/
public class RenderException extends Exception {
private static Log log = LogFactory.getLog(RenderException.class);
private static final long serialVersionUID = 5034687491589622988L;
private Class<? extends SpiderBean> spiderBeanClass;
public RenderException(String message, Class<? extends SpiderBean> spiderBeanClass) {
super(message);
this.spiderBeanClass = spiderBeanClass;
}
public RenderException(String message, Class<? extends SpiderBean> spiderBeanClass, FieldRenderException cause) {
super(message, cause);
this.spiderBeanClass = spiderBeanClass;
}
public Class<? extends SpiderBean> getSpiderBeanClass() {
return spiderBeanClass;
}
public void setSpiderBeanClass(Class<? extends SpiderBean> spiderBeanClass) {
this.spiderBeanClass = spiderBeanClass;
}
public static void log(String message, Class<? extends SpiderBean> spiderBeanClass, Throwable cause) {
boolean debug = SpiderThreadLocal.get().getEngine().isDebug();
log.error(spiderBeanClass.getName() + " render error : " + message);
if(debug && cause != null) {
log.error(message, cause);
}
}
public static void log(String message, Class<? extends SpiderBean> spiderBeanClass) {
log(message, spiderBeanClass, null);
}
}