c# - 在没有 web.config 的情况下使用 log4net

标签 c# asp.net logging log4net

我正在使用 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/

相关文章:

c# - 将动态生成的 javascript 保存到 html 文件中或将此内容放入字符串中并发送给 Controller

javascript - 有什么方法可以让 double 超过 13 位小数吗? C# 还是 JS?

c# - 无法在下拉列表中选择多个项目

c# - 保持简单的成员资格 OAuth session 事件

c# - 多个类中如何使用同名初始化多个TraceSource

c# - 多个单词导致自动完成扩展程序出现问题

c# - 通过 Silverlight 4.0 的 VOIP 功能(最多 5 个用户的实时语音流)?

ASP.NET MVC 如何在运行时添加新页面?

python - 此日志记录到哪里?

java - 使用 java 读取部署的 jar 文件夹之外的日志文件