vSRO SQL Error Logger System (Stored Procedure Error Tracking Guide – _AddErrorLog & TRY CATCH Logging)
admin
Katılım
23 Eki 2022
Mesajlar
8,178
Çözümler
12
Tepkime puanı
4,841
Puanları
113
Yaş
28
Merhaba,


Bu konuda vSRO serverlar için hazırlanmış SQL Error Logger sistemi paylaşılmıştır.


Bu sistem sayesinde database içinde oluşan tüm hatalar otomatik loglanır ve admin tarafında takip edilebilir hale gelir.




⚙️ Sistem Amacı


  • Stored procedure hatalarını loglamak
  • System error kayıtlarını tutmak
  • RAISEERROR seviyelerini yakalamak
  • Debug sürecini kolaylaştırmak



📌 Error Log Table Oluşturma



USE [SRO_VT_SYSTEM]
GO

CREATE TABLE [dbo].[_ErrorLogs](
[ErrorLogSN] [BIGINT] IDENTITY(1,1) NOT NULL,
[LoginName] [VARCHAR](128) NOT NULL,
[HostName] [VARCHAR](128) NOT NULL,
[ErrorNumber] [INT] NOT NULL,
[ErrorSeverity] [INT] NULL,
[ErrorState] [INT] NULL,
[ErrorProcedure] [VARCHAR](128) NULL,
[ErrorLine] [INT] NULL,
[ErrorMessage] [VARCHAR](MAX) NOT NULL,
[ErrorDate] [DATETIME] NOT NULL,
PRIMARY KEY CLUSTERED ([ErrorLogSN] ASC)
)





📌 Error Logger Procedure (_AddErrorLog)



ALTER PROCEDURE [dbo].[_AddErrorLog]
@intProcedureID INT = NULL
AS
SET NOCOUNT ON;
SET XACT_ABORT ON;

DECLARE @vcErrorMessage VARCHAR(4000),
@intErrorNumber INT,
@intErrorSeverity INT,
@intErrorState INT,
@intErrorLine INT,
@vcErrorProcedure VARCHAR(128);

IF XACT_STATE() = -1
GOTO ErrorHandler;

IF ERROR_NUMBER() IS NULL
GOTO ErrorHandler;

SET @intErrorNumber = ERROR_NUMBER();
SET @intErrorSeverity = ERROR_SEVERITY();
SET @intErrorState = ERROR_STATE();
SET @intErrorLine = ERROR_LINE();
SET @vcErrorProcedure = ERROR_PROCEDURE();
SET @vcErrorMessage = ERROR_MESSAGE();

INSERT INTO dbo._ErrorLogs
VALUES (
CAST(ORIGINAL_LOGIN() AS VARCHAR(128)),
CAST(HOST_NAME() AS VARCHAR(128)),
@intErrorNumber,
@intErrorSeverity,
@intErrorState,
ISNULL(OBJECT_NAME(@intProcedureID), @vcErrorProcedure),
@intErrorLine,
@vcErrorMessage,
GETDATE()
);

RAISERROR(@vcErrorMessage, @intErrorSeverity, 1);

RETURN 100;

ErrorHandler:
IF XACT_STATE() <> 0
ROLLBACK TRANSACTION;

RETURN 0;





🧠 Kullanım (TRY CATCH)



BEGIN TRY
-- YOUR CODE HERE
END TRY
BEGIN CATCH
EXEC dbo._AddErrorLog;
END CATCH;

1780272092651.webp



⚡ Avantajlar


✔ DB error tracking
✔ Procedure debug kolaylığı
✔ Server crash sebeplerini bulma
✔ GM / developer log sistemi




⚠️ Not


  • Sadece SQL Server hatalarını loglar
  • Büyük serverlarda log tablosu büyüyebilir
  • Periyodik temizleme önerilir
 
Üst
Reklam Ver
R10dev.net'i ana ekrana ekle!