Esempio n. 1
0
        /// <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());
        }
Esempio n. 2
0
        /// <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 */ }
        }
Esempio n. 3
0
        /// <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 */}
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Invoke the Log event.
 /// </summary>
 /// <param name="e">Log event parameters.</param>
 public void OnLog(LogEventArgs e)
 {
     if (Log != null)
     {
         Log(this, e);
     }
 }