42 messaggi dal 10 giugno 2010
Buongiorno,
per un web application MVC avrei la necessità di loggare nel db le operazioni che vengono eseguite dai singoli utenti autenticati.

Pensavo di sviluppare una particolare classe e richiamare il codice all'interno dei controller che mi interessa loggare.

E' la soluzione ottimale o esiste qualche metodologia piu' da rapida per implementare il log nei vari Controller?

Grazie
42 messaggi dal 10 giugno 2010
Ho risolto creando un ActionFilterAttribute.
Praticamente ho realizzato una classe che eredita da ActionFilterAttribute facendo override del metodo che viene eseguito prima dell'esecuzione e dopo l'esecuzione. In pratica una classe del tipo:

public class LogFiltroActionFilter : ActionFilterAttribute
{
public string ActionType { get; set; }

public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
}

public override void OnResultExecuting(ResultExecutingContext filterContext)
{
base.OnResultExecuting(filterContext);
}
}

Decorando i controller coinvolti nel log con l'annotazione
[LogFiltroActionFilter(ActionType = "NomeAzione")]

è possibile effettuare il log del controller utilizzando il contenuto della variabile filterContext.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.