/// <summary> /// Write a message to the log file /// </summary> /// <param name="message"></param> public void WriteLogMessage(NiawaLogMessage message) { //open file stream _stream = new System.IO.StreamWriter(_filename, true); //build log message StringBuilder sb = new StringBuilder(); //log date sb.Append(message.LogDate.ToString()); //log type sb.Append("|"); sb.Append(Enum.GetName(message.LogType.GetType(), message.LogType)); //log message sb.Append("|"); sb.Append(message.LogMessage); //log error message if (!(message.LogException == null)) { sb.Append("|"); sb.Append(message.LogException.Message); sb.Append(message.LogException.StackTrace); } //output log message to text file _stream.WriteLine(sb); IsStreamOpen = true; //TODO optimize by moving this to end of string of log messages being written CloseFile(); }
/// <summary> /// Write a message to the console /// </summary> /// <param name="message"></param> public void WriteLogMessage(NiawaLogMessage message) { //build log message StringBuilder sb = new StringBuilder(); //log date sb.Append(message.LogDate.ToString()); //log type sb.Append(" "); sb.Append(Enum.GetName(message.LogType.GetType(), message.LogType)); //log message sb.Append(" "); sb.Append(message.LogMessage); //log error message if(!(message.LogException==null)) { sb.Append(": "); sb.Append(message.LogException.Message); sb.Append(message.LogException.StackTrace); } //output log message to console Console.WriteLine(sb); }
/// <summary> /// Instantiate NiawaLogMessageEventArgs and ID is auto-generated /// </summary> /// <param name="logMessage"></param> public NiawaLogMessageEventArgs(NiawaLogMessage logMessage) { ID = new Guid(); LogMessage = logMessage; }
/// <summary> /// Instantiate NiawaLogMessageEventArgs with explicit ID /// </summary> /// <param name="id"></param> /// <param name="logMessage"></param> public NiawaLogMessageEventArgs(Guid id, NiawaLogMessage logMessage) { ID = id; LogMessage = logMessage; }
/// <summary> /// Add log message to be written asynchronously /// </summary> /// <param name="message">Log message to be written</param> public void Log(NiawaLogMessage message) { if (_logMessageTypeLogWriters.ContainsKey(message.LogType)) _messages.Enqueue(message); }
/// <summary> /// Raises a log event to any added listeners. /// </summary> /// <param name="message"></param> public void WriteLogMessage(NiawaLogMessage message) { //raise event if (NiawaLogMessageEvent != null) NiawaLogMessageEvent(this, new NiawaLogMessageEventArgs(message)); }