viernes, 30 de enero de 2009

Logger to SharePoint Logs

Hola actualmente hemos creada una pequeña utilidad que nos permite serializar los logs utilizando el mismo sistema que utilidad Windows SharePoint Services. Lo que hemos hecho es crear una clase TraceProvider igual que nos indican en las MSDN:

http://msdn.microsoft.com/en-us/library/aa979522.aspx

Luego hemos creado una classe estática logger con un conjunto de métodos estáticos que nos facilitan a la hora de guardar los logs.


public static class Logger
{
public static void LogUnassigned(string ProductName, string Title, string Message)
{
Log(TraceProvider.TraceSeverity.Unassigned, ProductName, Title, Message);
}
public static void LogCriticalEvent(string ProductName, string Title, string Message)
{
Log(TraceProvider.TraceSeverity.CriticalEvent, ProductName, Title, Message);
}
public static void LogWarningEvent(string ProductName, string Title, string Message)
{
Log(TraceProvider.TraceSeverity.WarningEvent, ProductName, Title, Message);
}
public static void LogInformationEvent(string ProductName, string Title, string Message)
{
Log(TraceProvider.TraceSeverity.InformationEvent, ProductName, Title, Message);
}
public static void LogException(Exception e)
{
Log(TraceProvider.TraceSeverity.Exception, e.Source, e.TargetSite.ToString(), e.ToString());
}
public static void LogAssert(string ProductName, string Title, string Message)
{
Log(TraceProvider.TraceSeverity.Assert, ProductName, Title, Message);
}
public static void LogUnexpected(string ProductName, string Title, string Message)
{
Log(TraceProvider.TraceSeverity.Unexpected, ProductName, Title, Message);
}
public static void LogMonitorable(string ProductName, string Title, string Message)
{
Log(TraceProvider.TraceSeverity.Monitorable, ProductName, Title, Message);
}
public static void LogHigh(string ProductName, string Title, string Message)
{
Log(TraceProvider.TraceSeverity.High, ProductName, Title, Message);
}

public static void LogMedium(string ProductName, string Title, string Message)
{
Log(TraceProvider.TraceSeverity.Medium, ProductName, Title, Message);
}
public static void LogVerbose(string ProductName, string Title, string Message)
{
Log(TraceProvider.TraceSeverity.Verbose, ProductName, Title, Message);
}
private static void Log(TraceProvider.TraceSeverity type, string ProductName, string Title, string Message)
{
TraceProvider.RegisterTraceProvider();
TraceProvider.WriteTrace(0, type, Guid.NewGuid(), ProductName, ProductName, Title, Message);
TraceProvider.UnregisterTraceProvider();
}
}

No hay comentarios: