public static crawlerErrorLog CreateAndSave(Exception __axe, IModelRecord __relevantRecord = null, crawlerDomainTask __task = null, crawlerErrorEnum __errorType = crawlerErrorEnum.none) { crawlerErrorLog output = new crawlerErrorLog(__axe, __relevantRecord, __task, __errorType, 1); if (FirstError == null) { FirstError = output; } Console.WriteLine("Error [" + output.Title + "]"); // Console.WriteLine("Message [" + output.Message + "]"); // Console.WriteLine("Spec.msg. [" + output.specificMessage + "]"); string path = output.SaveXML(); Console.WriteLine("Crawler error log saved to: " + path); if (FirstError == output) { if (imbWEMManager.settings.executionLog.doOpenFirstException) { externalToolExtensions.run(externalTool.notepadpp, path); } } if (imbWEMManager.settings.executionLog.doThrowDLCException) { throw __axe; } return(output); }
/// <summary> /// Gets the report. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="forRecord">For record.</param> /// <returns></returns> public virtual T GetReport <T>(IModelRecord forRecord) where T : class { if (byRecord.ContainsKey(forRecord)) { return(byRecord[forRecord] as T); } return(null); }
public virtual IMetaContentNested GetByRecord(IModelRecord record) { if (byRecord.ContainsKey(record)) { return(byRecord[record]); } else { return(null); } }
protected void deploy(Exception __axe, crawlerErrorEnum __errorType, string __specificMessage, object __relevantInstance, IModelRecord __relevantRecord, crawlerDomainTask __task = null, int stacks = 1) { specificMessage = __specificMessage; relevantRecord = __relevantRecord; if (relevantRecord == null) { if (__relevantInstance is IModelRecord) { relevantRecord = (IModelRecord)__relevantInstance; } } if (__errorType == crawlerErrorEnum.none) { __errorType = crawlerErrorEnum.exceptionError; } if (__axe != null) { if (__axe is aceGeneralException) { axe = (aceGeneralException)__axe; axe.SetLogSerializable(this); } else if (__axe is Exception) { if (__axe.Message.Contains("thread")) { isThreadCancelError = true; } axe = new aceGeneralException(__axe.Message, __axe, __relevantInstance, "Crawler error: " + __errorType.ToString(), stacks + 2); axe.SetLogSerializable(this); } else { axe = null; } } if (__relevantRecord != null) { relevantRecord = relevantRecord; // relevantRecord.SetLogSerializable(this); } if (__task != null) { task = __task; __task.SetLogSerializable(this); __errorType |= crawlerErrorEnum.domainTaskError; } }
/// <summary> /// Registers for record. /// </summary> /// <param name="record">The record.</param> /// <param name="content">The content.</param> public virtual void registerForRecord(IModelRecord record, IMetaContentNested content) { // String token = makeToken(record); byRecord.Add(record, content); //if (!byToken.ContainsKey(token)) //{ // byToken.Add(token, content); //} else //{ // aceLog.log("Duplicate token in the registry: " + token); //} }
public crawlerErrorLog(Exception __axe, IModelRecord __relevantRecord = null, crawlerDomainTask __task = null, crawlerErrorEnum __errorType = crawlerErrorEnum.none, int stacks = 1) { deploy(__axe, __errorType, "", __task, __relevantRecord, __task, stacks + 1); }
/// <summary> /// Makes the token. /// </summary> /// <param name="forRecord">For record.</param> /// <returns></returns> protected abstract string makeToken(IModelRecord forRecord);