sta*_*her 7 c# asp.net-mvc logging nlog asp.net-mvc-5
以前我的ASP .NET MVC5应用程序使用nlog.config文件时错误日志记录工作得很好.现在我想摆脱配置文件的方法; 我想以编程方式配置Nlog并删除对配置文件的需要.这些示例很好地向我展示了如何以编程方式设置它,但我对如何实际调用配置类并实际实现它感到困惑.继承人我所拥有的:
protected void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
NALSPrincipal userInfo = (NALSPrincipal)Context.User;
// Step 1. Create configuration object
var config = new LoggingConfiguration();
// Step 2. Create targets and add them to the configuration
var fileTarget = new FileTarget();
config.AddTarget("file", fileTarget);
// Step 3. Set target properties
fileTarget.FileName = "C:/nlogFile.txt";
fileTarget.Layout = "Exception Type: ${exception:format=Type}${newline}
Target Site: ${event-context:TargetSite}${newline}
Message: ${message}";
// Step 4. Define rules
var rule2 = new LoggingRule("*", LogLevel.Trace, fileTarget);
config.LoggingRules.Add(rule2);
// Step 5. Activate the configuration
LogManager.Configuration = config;
Logger logger = LogManager.GetCurrentClassLogger();
LogEventInfo eventInfo = new LogEventInfo(LogLevel.Trace, "", logger.Name);
eventInfo.Properties["TargetSite"] = ex.TargetSite;
eventInfo.Exception = ex;
logger.Log(eventInfo);
}
Run Code Online (Sandbox Code Playgroud)
有谁知道这不起作用?以下是基于以下内容的文档:https: //github.com/nlog/NLog/wiki/Configuration-API
如果它有帮助,这是我在使用nlog.config文件时所得到的,它工作正常:
protected void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
NALSPrincipal userInfo = (NALSPrincipal)Context.User;
Logger logger = LogManager.GetCurrentClassLogger();
LogEventInfo eventInfo = new LogEventInfo(LogLevel.Trace, "", logger.Name);
eventInfo.Properties["CUID"] = userInfo.userDetails.ContactID;
eventInfo.Properties["Username"] = Context.User.Identity.Name;
eventInfo.Properties["TargetSite"] = ex.TargetSite;
eventInfo.Exception = ex;
logger.Log(eventInfo);
}
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢!谢谢!