public bool LogAsync(string message, Exception exception, LogLevel logLevel, LogNotification logNotification, LogParameter logParameter) { throw new NotImplementedException(); }
protected override void WriteLog(LogParameter logParameter) { var path = Configuration.GetSection("FileLogger").GetSection("FileLoggerPath").Value; List <string> list = new List <string>(); list.Add(JsonConvert.SerializeObject(logParameter)); File.AppendAllLinesAsync(path, list); }
static void OneLoggerOption() { Console.Clear(); ShowTitle("Registrar en estrategia específica"); var myLog = new LogParameter(); Console.WriteLine("Estrategias encontradas: "); ShowLoggers(); Console.WriteLine(""); Console.WriteLine("Ingrese número de estrategia elegida: "); try { int idxLog = Convert.ToInt32(Console.ReadLine()); myLog.PluginToExecute = _MyPluginNames[idxLog - 1].Key; } catch (Exception) { Console.WriteLine("Número de estrategia incorrecto, presione cualquier tecla para volver al menú: "); Console.ReadKey(); ShowMenu(); } Console.WriteLine("- Ingrese Mensaje: "); myLog.Message = Console.ReadLine(); Console.WriteLine("- Ingrese Tipo de Mensaje: "); ShowMessageTypes(); try { myLog.MessageType = (MessageTypeEnum)Convert.ToInt32(Console.ReadLine()); } catch (Exception) { Console.WriteLine("Tipo incorrecto, presione cualquier tecla para volver al menú: "); Console.ReadKey(); ShowMenu(); } Console.WriteLine("CONFIRMA REGISTRO? Digite [S] para ejecutar o [N] para cancelar y retornar al Menú. "); string rpta = Console.ReadLine(); if (rpta.ToUpper() == "N") { ShowMenu(); } else if (rpta.ToUpper() == "S") { Console.WriteLine("RESULTADOS:"); MyLogger.Logger(myLog, true); } }
public virtual void Warn() { _logParameter = new LogParameter { Message = _message, TimeStamp = DateTime.Now, Username = _userName, Data = _data, LogTypeEnum = "Warn" }; WriteLog(_logParameter); }
/// <summary> /// 记录日志(建议在有上下文的环境下使用,否则可能会报错) /// </summary> /// <param name="logType">日志类型TRACE,INFO,ERROR,FATAL</param> /// <param name="className">哪个类中出错</param> /// <param name="methodName">哪个方法中出错</param> /// <param name="content">日志内容</param> public static void SaveLog(LogTypeEnum logType, string className, string methodName, string content) { try { LogParameter logParameter = new LogParameter(); logParameter.LogType = logType; logParameter.ClassName = className; logParameter.MethodName = methodName; logParameter.LogMessage = content; NestLogHelper.WriteLog(logParameter); } catch (Exception esError) { //发送es日志异常 DebugUtil.Debug(content + ",尝试发送es的FATAL日志时发生异常:" + esError.ToString()); } }
protected override void WriteLog(LogParameter logParameter) { string sql = "INSERT INTO [dbo].[Logs]([Detail],[Timestamp],[Audit],[Message],[Username]) values (@Detail,@Timestamp,@Audit,@Message,@Username)"; using (var connection = new SqlConnection(Configuration.GetConnectionString("DatabaseLoggerConnection"))) { var affectedRows = connection.ExecuteAsync(sql, new { Detail = logParameter.Data, Timestamp = logParameter.TimeStamp, Audit = logParameter.LogTypeEnum, Message = logParameter.Message, Username = logParameter.Username }).Result; } }
public static List <KeyValuePair <string, string> > Logger(LogParameter pLogParam, bool pExecute = false) { AppDomain pluginsAD = null; try { var pluginAppDomainSetup = new AppDomainSetup(); pluginAppDomainSetup.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory; pluginsAD = AppDomain.CreateDomain(_PLUGIN_APPDOMAIN_NAME, null, pluginAppDomainSetup); var pluginContext = new Utilities.PluginContext(); pluginContext.FilePath = _PLUGIN_PATH; pluginContext.CanExecute = pExecute; if (pLogParam != null) { pluginContext.Message = pLogParam.Message; pluginContext.MessageType = pLogParam.MessageType; pluginContext.PluginToExecute = pLogParam.PluginToExecute; } pluginsAD.SetData(_PLUGIN_CONTEXT_KEY, pluginContext); pluginsAD.DoCallBack(PluginCallback); pluginContext = pluginsAD.GetData(_PLUGIN_CONTEXT_KEY) as Utilities.PluginContext; var result = new List <KeyValuePair <string, string> >(); foreach (var itemPlugin in pluginContext.PluginNames) { result.Add(itemPlugin); } return(result); } catch (Exception ex) { Console.WriteLine($"Excepción:{ex.Message}"); return(null); } finally { AppDomain.Unload(pluginsAD); } }
static void AllLoggerOption() { Console.Clear(); ShowTitle("Registrar en todas las estrategias"); var myLog = new LogParameter(); Console.WriteLine("- Ingrese Mensaje: "); myLog.Message = Console.ReadLine(); Console.WriteLine("- Ingrese Tipo de Mensaje: "); ShowMessageTypes(); try { myLog.MessageType = (MessageTypeEnum)Convert.ToInt32(Console.ReadLine()); } catch (Exception) { Console.WriteLine("Tipo incorrecto, presione cualquier tecla para volver al menú: "); Console.ReadKey(); ShowMenu(); } Console.WriteLine("CONFIRMA REGISTRO? Digite [S] para ejecutar o [N] para cancelar y retornar al Menú. "); string rpta = Console.ReadLine(); if (rpta.ToUpper() == "N") { ShowMenu(); } else if (rpta.ToUpper() == "S") { myLog.PluginToExecute = "*"; Console.WriteLine("RESULTADOS:"); MyLogger.Logger(myLog, true); } }
private LogDetail GetLogDetail(IInvocation invocation) { var logParameters = new List <LogParameter>(); for (int i = 0; i < invocation.Arguments.Length; i++) { var logParameter = new LogParameter { Type = invocation.Arguments[i].GetType().Name, Name = invocation.GetConcreteMethod().GetParameters()[i].Name, Value = invocation.Arguments[i] }; logParameters.Add(logParameter); } var logDetail = new LogDetail { LogParameters = logParameters, MethodName = $"{invocation.Method.ReflectedType.FullName}.{invocation.Method.Name}" }; return(logDetail); }
protected abstract void WriteLog(LogParameter logParameter);
/// <summary> /// Sets the log. /// </summary> /// <param name="errNo">The err no.</param> /// <param name="logParameter">The log parameter.</param> /// <exception cref="System.ArgumentOutOfRangeException">errNo or loggerLevel.</exception> public static void SetLog(int errNo, LogParameter logParameter = null) { try { if (logParameter == null) logParameter = new LogParameter(); LoggerLevel loggerLevel; switch (errNo) { case 1: loggerLevel = LoggerLevel.Info; break; case 300: loggerLevel = LoggerLevel.Error; break; case 400: loggerLevel = LoggerLevel.Fatal; break; default: throw new ArgumentOutOfRangeException("errNo"); } var stringBuilder = new StringBuilder(); if (!String.IsNullOrEmpty(logParameter.ExceptionMessage) || !String.IsNullOrEmpty(logParameter.StackTrace)) { stringBuilder.AppendLine(logParameter.ExceptionMessage); stringBuilder.AppendLine(logParameter.StackTrace); } if (!String.IsNullOrEmpty(logParameter.AdditionalMessage)) { if (stringBuilder.Length > 0) { stringBuilder.AppendLine(); } stringBuilder.AppendLine("Additional message:"); stringBuilder.AppendLine(logParameter.AdditionalMessage); } string message = String.Format("{0};{1};Description: {2}", errNo.ToString(CultureInfo.InvariantCulture).PadLeft(3, '0'), DefaultLoggerName, stringBuilder); switch (loggerLevel) { case LoggerLevel.Info: if (logParameter.CreateFileLog) Info(message); break; case LoggerLevel.Warn: if (logParameter.CreateFileLog) Warn(message); break; case LoggerLevel.Error: case LoggerLevel.Fatal: if (logParameter.CreateFileLog) Error(message); break; default: throw new ArgumentOutOfRangeException(); } } // ReSharper disable EmptyGeneralCatchClause catch (Exception) // ReSharper restore EmptyGeneralCatchClause { } }
/// <summary> /// Sets the log. /// </summary> /// <param name="exception">The exception.</param> /// <param name="logParameter">The log parameter.</param> public static void SetLog(Exception exception, LogParameter logParameter = null) { try { if (logParameter == null) logParameter = new LogParameter(); logParameter.ExceptionMessage = exception.Message; logParameter.StackTrace = exception.StackTrace; SetLog(400, logParameter); if (exception.InnerException != null) SetLog(exception.InnerException, logParameter); } // ReSharper disable EmptyGeneralCatchClause catch (Exception) // ReSharper restore EmptyGeneralCatchClause { } }