Elmah.SqlServerCompactErrorLog.Log C# (CSharp) Méthode

Log() public méthode

Logs an error to the database.
Use the stored procedure called by this implementation to set a policy on how long errors are kept in the log. The default implementation stores all errors for an indefinite time.
public Log ( Error error ) : string
error Error
Résultat string
        public override string Log(Error error)
        {
            if (error == null)
                throw new ArgumentNullException("error");

            var errorXml = ErrorXml.EncodeString(error);
            
            var id = Guid.NewGuid();
            
            const string query = @"
                INSERT INTO ELMAH_Error (
                    [ErrorId], [Application], [Host], 
                    [Type], [Source], [Message], [User], [StatusCode], 
                    [TimeUtc], [AllXml] )
                VALUES (
                    @ErrorId, @Application, @Host, 
                    @Type, @Source, @Message, @User, @StatusCode, 
                    @TimeUtc, @AllXml);";

            using (var connection = new SqlCeConnection(ConnectionString))
            {
                using (var command = new SqlCeCommand(query, connection))
                {
                    var parameters = command.Parameters;

                    parameters.Add("@ErrorId", SqlDbType.UniqueIdentifier).Value = id;
                    parameters.Add("@Application", SqlDbType.NVarChar, 60).Value = ApplicationName;
                    parameters.Add("@Host", SqlDbType.NVarChar, 30).Value = error.HostName;
                    parameters.Add("@Type", SqlDbType.NVarChar, 100).Value = error.Type;
                    parameters.Add("@Source", SqlDbType.NVarChar, 60).Value = error.Source;
                    parameters.Add("@Message", SqlDbType.NVarChar, 500).Value = error.Message;
                    parameters.Add("@User", SqlDbType.NVarChar, 50).Value = error.User;
                    parameters.Add("@StatusCode", SqlDbType.Int).Value = error.StatusCode;
                    parameters.Add("@TimeUtc", SqlDbType.DateTime).Value = error.Time.ToUniversalTime();
                    parameters.Add("@AllXml", SqlDbType.NText).Value = errorXml;

                    command.Connection = connection;
                    connection.Open();
                    command.ExecuteNonQuery();
                    return id.ToString();
                }
            }
        }