/// <summary> /// /// </summary> /// <param name="providerElement"></param> /// <returns></returns> private Target GetTargetByProviderElement(LogProviderElement providerElement) { switch (providerElement.Target) { case TargetType.Database: { DatabaseTarget wDatabase = new DatabaseTarget(); wDatabase.CnnStringName = providerElement.CnnStringName; return(wDatabase); } case TargetType.File: { FileTarget wFile = new FileTarget(); wFile.FileName = providerElement.FileName; return(wFile); } case TargetType.WindowsEvent: { return(new WindowsEventTarget()); } case TargetType.Xml: { XmlTarget wXml = new XmlTarget(); wXml.FileName = providerElement.FileName; return(wXml); } } return(null); }
/// <summary> /// /// </summary> /// <param name="providerName">Nombre del proveedor de Logueo</param> /// <param name="ev"></param> /// <param name="path"></param> /// <param name="fileNamePrefix"></param> private static void WriteLog(String providerName, Event ev, string path, string fileNamePrefix) { // Obtiene el provider LogProviderElement provider = _LoggingSection.GetProvider(providerName); // Escribe el log según la Rule. Target wTarget = GetTargetByProvider(provider, path, fileNamePrefix); wTarget.Write(ev); }
/// <summary> /// Escribe un log /// </summary> /// <param name="providerName"></param> /// <param name="pEvent"></param> private void WriteLog(string providerName, Event pEvent) { // Obtiene el provider LogProviderElement provider = _LoggingSection.GetProvider(providerName); // Escribe el log según la Rule. Target wTarget = GetTargetByProviderElement(provider); wTarget.Write(pEvent); //wRule = null; //pEvent = null; }
/// <summary> /// /// </summary> /// <param name="providerName"></param> /// <param name="pEventType"></param> /// <param name="pSource"></param> /// <param name="pText"></param> private void WriteLog(String providerName, EventType pEventType, string pSource, string pText) { // Crea un nuevo Event. Event wEvent = new Event(pEventType, pSource, pText); wEvent.AppId = appId; // Obtiene la Rule asociada al EventType. LogProviderElement wRule = _LoggingSection.GetProvider(); // Escribe el log según la Rule. Target wTarget = GetTargetByProviderElement(wRule); wTarget.Write(wEvent); // Limpieza. wEvent = null; wRule = null; }
ITarget GetTarget(string providerName) { ITarget target = null; LogProviderElement provider = _LoggingSection.GetProvider(providerName); switch (provider.Target) { case TargetType.Database: { target = new DatabaseTarget(); ((DatabaseTarget)target).CnnStringName = provider.CnnStringName; break; } case TargetType.Xml: { target = new XmlTarget(); ((XmlTarget)target).FileName = provider.FileName; break; } } return(target); }
/// <summary> /// /// </summary> /// <param name="provider"></param> /// <param name="path"></param> /// <param name="fileNamePrefix"></param> /// <returns></returns> private static Target GetTargetByProvider(LogProviderElement provider, string path, string fileNamePrefix) { ITarget target = null; switch (provider.Target) { case TargetType.Database: { target = Target.TargetFactory(TargetType.Database, provider.CnnStringName); break; } case TargetType.File: { string fileName; if (string.IsNullOrEmpty(path)) { fileName = string.Concat(fileNamePrefix, provider.FileName); } else { fileName = System.IO.Path.Combine(path, string.Concat(fileNamePrefix, provider.FileName)); } //Si cambio el nombre del archivo de log reinicio los logs para que Xmltarget lo busque // en el archivo correspondiente o genere uno nuevo if (string.Compare(fileName, currentFileName) != 0) { currentFileName = fileName; } target = Target.TargetFactory(TargetType.File, provider.FileName); break; } case TargetType.WindowsEvent: { target = Target.TargetFactory(TargetType.WindowsEvent, "WindowsEvent"); break; } case TargetType.Xml: { string fileName; if (string.IsNullOrEmpty(path)) { fileName = string.Concat(fileNamePrefix, provider.FileName); } else { fileName = System.IO.Path.Combine(path, string.Concat(fileNamePrefix, provider.FileName)); } //Si cambio el nombre del archivo de log reinicio los logs para que Xmltarget lo busque // en el archivo correspondiente o genere uno nuevo if (string.Compare(fileName, currentFileName) != 0) { ClearXmlTargetEvents(); currentFileName = fileName; } target = Target.TargetFactory(TargetType.Xml, fileName); break; } } return((Target)target); }