簡體   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