L'exploitation forestière dans Asp.net application MVC à l'aide de log4net
Le mien est un Asp.net MVC 4 application. J'ai besoin de mettre en œuvre les suivantes;
Selon le niveau de journal au web.fichier de configuration (par exemple. 1/2/3/4)
Je dois ouvrir une session:
1 :
- Méthodes
- Méthodes fin
- Application Avertissement
L'Exception De L'Application
2:
- Application Des Avertissements
- Application Des Exceptions
3:
- Application Des Exceptions
4:
- Aucun
J'ai besoin pour atteindre cet objectif global de filtre(s).
de bien vouloir me donner quelques conseils.
Merci d'avance.
Résolu
Voici mes étapes
J'ai créé le Filtre suivant la classe
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class LoggerFilterAttribute : ActionFilterAttribute
{
private ILog _objLog4Net = null;
string logLevel = string.Empty;
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
_objLog4Net = LogManager.GetLogger(filterContext.RouteData.Values["controller"].ToString());
logLevel = GetLogLevel();
if (logLevel == "1")
{
_objLog4Net.Debug(string.Concat("Entered ", filterContext.Controller.GetType().ToString(), "'s ", filterContext.ActionDescriptor.ActionName, " method"));
}
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
_objLog4Net = LogManager.GetLogger(filterContext.RouteData.Values["controller"].ToString());
logLevel = GetLogLevel();
if (logLevel == "1")
{
_objLog4Net.Debug(string.Concat("Existing ", filterContext.Controller.GetType().ToString(), "'s ", filterContext.ActionDescriptor.ActionName, " method"));
}
}
private string GetLogLevel()
{
return ConfigurationManager.AppSettings["LOGLEVEL"].ToLower().ToString();
}
}
Cette classe va vérifier pour la journalisation dans le fichier de configuration si trouvé 1 Par
OnActionExecuting()
et OnActionExecuted()
Journal pour la Méthode de Début et de Fin de la Méthode.
Plus suivant est le ExceptionFilter classe pour l'enregistrement exception
public class ExceptionFilterAttribute : HandleErrorAttribute
{
private ILog _objLog4Net = null;
string logLevel = string.Empty;
public override void OnException(ExceptionContext filterContext)
{
_objLog4Net = LogManager.GetLogger(filterContext.RouteData.Values["controller"].ToString());
logLevel = GetLogLevel();
if (logLevel == "1" || logLevel == "2")
{
_objLog4Net.Error(filterContext.Exception.Message, filterContext.Exception);
}
if (logLevel == "3")
{
if (filterContext.Exception.GetType().IsSubclassOf(typeof(ApplicationException)))
{
_objLog4Net.Error(filterContext.Exception.Message, filterContext.Exception);
}
}
}
private string GetLogLevel()
{
return ConfigurationManager.AppSettings["LOGLEVEL1"].ToLower().ToString();
}
}
Cette classe selon le niveau de journal, Journaux de Toutes les Exceptions ou seulement les exceptions de l'Application.
Si Loglevel n'est pas de conditions d'une vraie /rien n'est enregistré.
Vous devez vous connecter pour publier un commentaire.
Ce type de question sont en baisse voté que vous verrez bientôt... si vous vous demandez ici est pourquoi, vous avez partagé votre exigence unique, cependant vous n'avez pas partagé l'analyse de l'effort que vous avez dépensé. En raison de laquelle la question tombe dans la catégorie générale. Je reconnais être un nouveau membre sur ce site, ça prend quand même le temps de l'obtenir. Donc un peu d'aide de mon côté,
Quelques liens sont:
http://www.codeproject.com/Articles/140911/log4net-Tutorial
http://www.eyecatch.no/blog/2012/08/logging-with-log4net-in-c-sharp/
Découvrez ci-dessous la réponse sur DONC ainsi:
https://stackoverflow.com/questions/4670916/does-anyone-know-any-tutorial-preferably-book-on-log4net