我正在使用 log4net 记录错误。
目前我下载了log4net.dll
文件,然后在global.asax
文件中做了如下修改:
private static ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
protected void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
}
protected void Application_Error(object sender, EventArgs e)
{
Log.Fatal("An uncaught exception occurred", this.Server.GetLastError());
}
还在 web.config 文件中进行了这些更改
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="c:\Log4NetExample.log"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
</layout>
</appender>
<root>
<level value="All"/>
<appender-ref ref="LogFileAppender"/>
</root>
一切正常..但我需要的是从 web.config
中移动代码并改为从文本文件中读取它。
我还需要 2 个级别的调试和错误..
谁能帮我解决这个问题?
谢谢
最佳答案
将此属性放入您的 AssemblyInfo.cs 文件中:
[assembly:log4net.Config.XmlConfigurator(ConfigFile="Log4Net.config",Watch=true)]
其中“Log4net.config”等同于您的配置文件的名称。
当然,还有其他方法可以达到同样的效果。例如,您可以在 web.config 中保留配置部分处理程序设置。将该元素移动到它自己的 xml 文件中,并在 web.config 中将其替换为一个空元素,因此:
<log4net configSource="c:\config\myLog4NetConfig.xml" />
configSource 属性提供外部文件的位置(不能是 UNC 路径,但它必须是机器本地的。)
就配置 log4net 而言...可能会有点棘手。请参阅以下链接以获取帮助和示例:
关于c# - 在没有 web.config 的情况下使用 log4net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4696866/