Uso básico de NLog (C#)

Para usar NLog, se debe instalar (Nlog y Nlog Configuration) por medio del administrador de paquetes Nuget.

Si no aparece el administrador de paquetes de Nuget en el menú de VisualStudio, se puede abrir al dar clic derecho en las referencias del proyecto, Manage Nuget Packages.

Se debe configurar las siguientes directivas en el archivo Nlog.config que se crea automáticamente en la solución al instalar los paquetes:

En la sección targets  del archivo Nlog.config se debe definir el destino donde se quiere almacenar los logs, que para este caso es un archivo de texto:

 <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />

En la sección rules se debe colocar el logger:
 <logger name="*" minlevel="Debug" writeTo="f" />  

Implementación en C#

Para logear exepciones:
 var log = LogManager.GetCurrentClassLogger();  
 log.Error(ex.Message, ex.StackTrace);  

Para logear exepciones globales (no capturadas) se puede usar dentro de la función: Application_Error de la clase: Global en el archivo Gobal.asax.cs:
 var log = LogManager.GetCurrentClassLogger();  
 var ex = Server.GetLastError();   
 log.Error(ex.Message, ex.StackTrace);  

Para logear texto en general:
 var log = LogManager.GetCurrentClassLogger();  
 log.Error(ex.Message.toString());  

Variables globales SQL server

select @@CONNECTIONS as vCONNECTIONS
select @@CPU_BUSY as vCPU_BUSY
select @@CURSOR_ROWS as vCURSOR_ROWS
select @@DATEFIRST as vDATEFIRST
select @@DBTS as vDBTS
select @@DEF_SORTORDER_ID as vDEF_SORTORDER_ID
select @@DEFAULT_LANGID as vDEFAULT_LANGID
select @@ERROR as vERROR
select @@FETCH_STATUS as vFETCH_STATUS
select @@IDENTITY as vIDENTITY
select @@IDLE as vIDLE
select @@IO_BUSY as vIO_BUSY
select @@LANGID as vLANGID
select @@LANGUAGE as vLANGUAGE
select @@LOCK_TIMEOUT as vLOCK_TIMEOUT
select @@MAX_CONNECTIONS as vMAX_CONNECTIONS
select @@MAX_PRECISION as vMAX_PRECISION
select @@MICROSOFTVERSION as vMICROSOFTVERSION
select @@NESTLEVEL as vNESTLEVEL
select @@OPTIONS as vOPTIONS
select @@PACK_RECEIVED as vPACK_RECEIVED
select @@PACK_SENT as vPACK_SENT
select @@PACKET_ERRORS as vPACKET_ERRORS
select @@PROCID as vPROCID
select @@REMSERVER as vREMSERVER
select @@ROWCOUNT as vROWCOUNT
select @@SERVERNAME as vSERVERNAME
select @@SERVICENAME as vSERVICENAME
select @@SPID as vSPID
select @@TEXTSIZE as vTEXTSIZE
select @@TIMETICKS as vTIMETICKS
select @@TOTAL_ERRORS as vTOTAL_ERRORS
select @@TOTAL_READ as vTOTAL_READ
select @@TOTAL_WRITE as vTOTAL_WRITE
select @@TRANCOUNT as vTRANCOUNT
select @@VERSION as vVERSION

Usuario de lectura para todas las bases de datos MSSQL - Read only user for all databases MSSQL

EXECUTE master.sys.sp_MSforeachdb 'USE [?]; IF DB_Name() NOT IN (''Master'', ''Tempdb'', ''model'', ''msdb'' ,''distribution'')
BEGIN
begin try
create user masterReadOnlyUser for login masterReadOnlyUser
print ''Agrega el usuario masterReadOnlyUser a la base de datos ''+ DB_NAME()
end try
begin catch
print ''Error: ''+ERROR_MESSAGE ( ) 
end catch
begin try
exec sp_addrolemember ''db_datareader'',''masterReadOnlyUser''
print ''Agrega rol db_datareader al usuario masterReadOnlyUser en la base de datos ''+ DB_NAME()
end try
begin catch
print ''Error: ''+ERROR_MESSAGE ( ) 
end catch
END
'

Limpiar/Eliminar Log Base de datos MSSQL / Clean/Delete Log MSSQL Database

use Database
go

-- Cambiamos modelo de recuperación a simple 
ALTER DATABASE Database SET RECOVERY SIMPLE
GO

declare @archivo_log varchar(255)

select top 1 @archivo_log = name from sys.database_files where type_desc = 'LOG'

-- Reducimos tamaño del registro de transacciones
DBCC SHRINKFILE (@archivo_log)
GO

-- Cambiamos modelo de recuperación a completa 
ALTER DATABASE Database SET RECOVERY FULL
GO