Al igual que Ron's Logging, llamamos a un proceso de registro a través de todos los demás procedimientos almacenados para ayudar a obtener el seguimiento en todas las llamadas. Se utiliza un BatchId común para permitir el seguimiento de una determinada ejecución por lotes. Posiblemente no sea el proceso más eficiente, pero ayuda mucho a rastrear fallas. También es bastante simple compilar informes de resumen para administradores de correo electrónico.
es decir.
Select * from LogEvent where BatchId = 'blah'
ejemplo de la llamada
EXEC LogEvent @Source='MyProc', @Type='Start'
, @Comment='Processed rows',@Value=50, @BatchId = @batchNum
principal Proc
CREATE PROCEDURE [dbo].[LogEvent]
@Source varchar(50),
@Type varchar(50),
@Comment varchar(400),
@Value decimal = null,
@BatchId varchar(255) = 'BLANK'
AS
IF @BatchId = 'BLANK'
SET @BatchId = NEWID()
INSERT INTO dbo.Log
(Source, EventTime, [Type], Comment, [Value],BatchId)
VALUES
(@Source, GETDATE(), @Type, @Comment, @Value,@BatchId)
En el futuro, sería bueno para aprovechar el CLR y mirar a llamar algo así como Log4net a través de SQL. Como nuestro código de aplicación usa Log4Net, sería ventajoso integrar el lado SQL de los procesos en la misma infraestructura.
Sí, yo también. Tal vez algún empresario pueda hacer algunas herramientas que tanto se necesitan. – MrBoJangles