Siempre es curioso encontrarse con funcionalidades no documentadas en SQL Server. Aunque uno no pueda fiarse mucho de ellas (al no estar documentadas, el equipo de desarrollo podría cambiarlas o directamente eliminarlas sin tener que rendir cuentas a nadie), en alguna ocasión te puede sacar de un apuro.

El caso es que hoy me he encontrado con una forma fácil de conocer la ruta del log de errores de nuestra instancia. Sí, igual alguno puede conocer la forma por la cual podemos obtener algo similar leyendo del registro, mediante el procedimiento almacenado extendido xp_instance_regread (el cual tampoco está documentado) y filtrando por la clave correcta. Algo como:

DECLARE @DirLog nvarchar(512)

EXEC master.dbo.xp_instance_regread N’HKEY_LOCAL_MACHINE’ , N’SOFTWAREMicrosoftMSSQLServerCPE’ , N’ErrorDumpDir’ , @DirLog OUTPUT

PRINT @DirLog

Teniendo en cuenta que lo anterior nos muestra la ruta de la carpeta LOG de nuestra instancia, no habría mayor problema en usar este método si conocemos la clave del registro donde buscar. Lo cual en algunas ocasiones puede ser bastante complicado.

Sin embargo, con este nuevo método que he encontrado, simplemente ejecutando

SELECT SERVERPROPERTY(‘ErrorLogFileName’)

Tenemos no sólo la ruta completa, sino también el nombre del archivo de log de nuestra instancia.

Fácil, ¿verdad?