/// <summary> /// Executes the WriteLog stored procedure /// </summary> /// <param name="eventId">The event id for this LogEntry.</param> /// <param name="priority">The priority for this LogEntry.</param> /// <param name="severity">The severity for this LogEntry.</param> /// <param name="title">The title for this LogEntry.</param> /// <param name="timeStamp">The timestamp for this LogEntry.</param> /// <param name="machineName">The machine name for this LogEntry.</param> /// <param name="appDomainName">The appDomainName for this LogEntry.</param> /// <param name="processId">The process id for this LogEntry.</param> /// <param name="processName">The processName for this LogEntry.</param> /// <param name="managedThreadName">The managedthreadName for this LogEntry.</param> /// <param name="win32ThreadId">The win32threadID for this LogEntry.</param> /// <param name="message">The message for this LogEntry.</param> /// <param name="db">An instance of the database class to use for storing the LogEntry</param> /// <returns>An integer for the LogEntry Id</returns> private int ExecuteWriteLogStoredProcedure(int eventId, int priority, TraceEventType severity, string title, DateTime timeStamp, string machineName, string appDomainName, string processId, string processName, string managedThreadName, string win32ThreadId, string message, Data.Database db, IDictionary<string, object> extendedProperties) { DbCommand cmd = db.GetStoredProcCommand(writeLogStoredProcName); db.AddInParameter(cmd, "eventID", DbType.Int32, eventId); db.AddInParameter(cmd, "priority", DbType.Int32, priority); db.AddParameter(cmd, "severity", DbType.String, 32, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, severity.ToString()); db.AddParameter(cmd, "title", DbType.String, 256, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, title); db.AddInParameter(cmd, "timestamp", DbType.DateTime, timeStamp); db.AddParameter(cmd, "machineName", DbType.String, 32, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, machineName); db.AddParameter(cmd, "AppDomainName", DbType.String, 512, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, appDomainName); db.AddParameter(cmd, "ProcessID", DbType.String, 256, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, processId); db.AddParameter(cmd, "ProcessName", DbType.String, 512, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, processName); db.AddParameter(cmd, "ThreadName", DbType.String, 512, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, managedThreadName); db.AddParameter(cmd, "Win32ThreadId", DbType.String, 128, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, win32ThreadId); db.AddParameter(cmd, "message", DbType.String, 1500, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, message); db.AddInParameter(cmd, "formattedmessage", DbType.String, message); AddExtendedProperties(db, cmd, extendedProperties); db.AddOutParameter(cmd, "LogId", DbType.Int32, 4); db.ExecuteNonQuery(cmd); int logId = Convert.ToInt32(cmd.Parameters[cmd.Parameters.Count - 1].Value, CultureInfo.InvariantCulture); return logId; }
/// <summary> /// Executes the WriteLog stored procedure /// </summary> /// <param name="logEntry">The LogEntry to store in the database.</param> /// <param name="db">An instance of the database class to use for storing the LogEntry</param> /// <param name="transaction">The transaction that wraps around the execution calls for storing the LogEntry</param> /// <returns>An integer for the LogEntry Id</returns> private int ExecuteWriteLogStoredProcedure(LogEntry logEntry, Data.Database db, DbTransaction transaction) { DbCommand cmd = db.GetStoredProcCommand(writeLogStoredProcName); db.AddInParameter(cmd, "eventID", DbType.Int32, logEntry.EventId); db.AddInParameter(cmd, "priority", DbType.Int32, logEntry.Priority); db.AddParameter(cmd, "severity", DbType.String, 32, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, logEntry.Severity.ToString()); db.AddParameter(cmd, "title", DbType.String, 256, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, logEntry.Title); db.AddInParameter(cmd, "timestamp", DbType.DateTime, logEntry.TimeStamp); db.AddParameter(cmd, "machineName", DbType.String, 32, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, logEntry.MachineName); db.AddParameter(cmd, "AppDomainName", DbType.String, 512, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, logEntry.AppDomainName); db.AddParameter(cmd, "ProcessID", DbType.String, 256, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, logEntry.ProcessId); db.AddParameter(cmd, "ProcessName", DbType.String, 512, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, logEntry.ProcessName); db.AddParameter(cmd, "ThreadName", DbType.String, 512, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, logEntry.ManagedThreadName); db.AddParameter(cmd, "Win32ThreadId", DbType.String, 128, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, logEntry.Win32ThreadId); db.AddParameter(cmd, "message", DbType.String, 1500, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Default, logEntry.Message); if (Formatter != null) db.AddInParameter(cmd, "formattedmessage", DbType.String, Formatter.Format(logEntry)); else db.AddInParameter(cmd, "formattedmessage", DbType.String, logEntry.Message); AddExtendedProperties(db, cmd, logEntry.ExtendedProperties); db.AddOutParameter(cmd, "LogId", DbType.Int32, 4); db.ExecuteNonQuery(cmd, transaction); int logId = Convert.ToInt32(cmd.Parameters[cmd.Parameters.Count - 1].Value, CultureInfo.InvariantCulture); return logId; }
/// <summary> /// Executes the AddCategory stored procedure /// </summary> /// <param name="logEntry">The LogEntry to store in the database.</param> /// <param name="logID">The unique identifer for the LogEntry as obtained from the WriteLog Stored procedure.</param> /// <param name="db">An instance of the database class to use for storing the LogEntry</param> /// <param name="transaction">The transaction that wraps around the execution calls for storing the LogEntry</param> private void ExecuteAddCategoryStoredProcedure(LogEntry logEntry, int logID, Data.Database db, DbTransaction transaction) { foreach (string category in logEntry.Categories) { DbCommand cmd = db.GetStoredProcCommand(addCategoryStoredProcName); db.AddInParameter(cmd, "categoryName", DbType.String, category); db.AddInParameter(cmd, "logID", DbType.Int32, logID); db.ExecuteNonQuery(cmd, transaction); } }