繁体   English   中英

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

[英]use log4net without web.config

我使用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 ......这可能会让人觉得有点棘手。 请参阅以下链接以获取帮助和示例:

我不知道这是否是您想要的,但是您可以将相同的log4net xml配置信息放入txt文件中,自己阅读,然后使用该xml初始化log4net。

有关如何以编程方式使用xml配置log4net,请参阅此处的问题 在示例中,我显示通过log4net api将xml直接发送到log4net。 您的案例所缺少的就是从文本文件中读取它。 我认为,如果您从web.config复制了log4net xml配置信息并将其粘贴到文本文件中,您应该能够从文件中读取它并将其发送到log4net,如示例所示。

请注意,如果您只想将log4net日志记录配置放在与web.config不同的文件中,则log4net允许您指定仅包含log4net配置信息的单独文件(这比上面的示例更为标准) )。

有关如何为ASP.NET应用程序执行此操作的示例,请参阅此问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM