我建议使用 log4net。很容易做到这一点。
首先,download log4net。解压,然后在你的项目中添加对 log4net.dll 的引用。
在您的根文件夹中创建一个名为 log4net.config 的基本配置文件。这将在您的 Web 根目录之外的 Logs 文件夹中按日期命名的日志文件中记录错误。
<?xml version="1.0"?>
<log4net debug="false">
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="DatePattern" value="yyyy-MM-dd'.log'" />
<param name="File" value="..\\Logs\\" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="30" />
<param name="MaximumFileSize" value="100MB" />
<param name="RollingStyle" value="Date" />
<param name="StaticLogFileName" value="false" />
<param name="CountDirection" value="-1" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
</layout>
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="DEBUG" />
</evaluator>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
在Properties\AssemblyInfo.cs 文件中,添加以下行。这将在您的应用程序启动时自动从配置文件中配置 log4net。
[assembly: XmlConfigurator(ConfigFile = "./Log4net.config", Watch = true)]
要捕获错误并记录它们,您需要将以下内容添加到 Global.asax.cs
private static readonly ILog m_Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
protected void Application_Error(object sender, EventArgs e)
{
// Get the error
Exception exception = Server.GetLastError();
// Log the error to a text file
m_Logger.Fatal("Unhandled application error", exception);
// Redirect to error page
Response.Redirect("~/Error.aspx");
}
完成这项工作涉及几个步骤,但它们都相当容易完成,一旦 log4net 到位,您就可以轻松地在应用程序的其他地方添加日志记录(而不仅仅是记录未处理的异常)。