/// <summary> /// Writes a log request to the database. /// </summary> /// <remarks> /// Actual database insert statements are commented out. /// You can activate this if you have the proper database /// configuration and access privileges. /// </remarks> /// <param name="sender">Sender of the log request.</param> /// <param name="e">Parameters of the log request.</param> public void Log(object sender, LogEventArgs e) { // Skeleton code of how you could log to database // Note: A better approach is to use Data Access Object string message = "Date = " + e.Date.ToString() + " Severity = " + e.SeverityString + " Message = " + e.Message; StringBuilder sql = new StringBuilder(); sql.Append("INSERT INTO LOG (message) "); sql.Append("VALUES('" + message + "')"); // Commented out for now. You need database to store log values. //Db.Update(sql.ToString()); }
/// <summary> /// Write a log request to the event log. /// </summary> /// <remarks> /// Actual event log write entry statements are commented out. /// Uncomment if you have the proper privileges. /// </remarks> /// <param name="sender">Sender of the log request.</param> /// <param name="e">Parameters of the log request.</param> public void Log(object sender, LogEventArgs e) { string message = "[" + e.Date.ToString() + "] " + e.SeverityString + ": " + e.Message; EventLog eventLog = new EventLog(); eventLog.Source = "Patterns In Action"; // Map severity level to an event log entry type EventLogEntryType type = EventLogEntryType.Error; if (e.Severity < LogSeverity.Warning) type = EventLogEntryType.Information; if (e.Severity < LogSeverity.Error) type = EventLogEntryType.Warning; // In try catch. You will need proper privileges to write to eventlog. try { eventLog.WriteEntry(message, type); } catch { /* do nothing */ } }
/// <summary> /// Write a log request to a file. /// </summary> /// <param name="sender">Sender of the log request.</param> /// <param name="e">Parameters of the log request.</param> public void Log(object sender, LogEventArgs e) { string message = "[" + e.Date.ToString() + "] " + e.SeverityString + ": " + e.Message; FileStream fileStream; // Create directory, if necessary try { fileStream = new FileStream(_fileName, FileMode.Append); } catch (DirectoryNotFoundException) { Directory.CreateDirectory((new FileInfo(_fileName)).DirectoryName); fileStream = new FileStream(_fileName, FileMode.Append); } catch (IOException) { System.Threading.Thread.Sleep(10); fileStream = new FileStream(_fileName, FileMode.Append); } // NOTE: Be sure you have write privileges to folder StreamWriter writer = new StreamWriter(fileStream); try { writer.WriteLine(message); } catch { /* do nothing for now */} finally { try { writer.Close(); } catch { /* do nothing for now */} } }
/// <summary> /// Invoke the Log event. /// </summary> /// <param name="e">Log event parameters.</param> public void OnLog(LogEventArgs e) { if (Log != null) { Log(this, e); } }