将log4net文件路径设置为自定义路径

时间:2012-07-23 21:47:17

标签: c# asp.net log4net

我需要将日志文件路径更改为自定义路径。

我有一个代码,它将文件放在wwwroot文件夹中。

  public static ILog logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

    protected void Application_Start(object sender, EventArgs e)
    {
        log4net.Config.XmlConfigurator.Configure();

        FileAppender rootAppender = (FileAppender)((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root.Appenders[0];           
        string filename = rootAppender.File;
        Global.logger.Error("Log 4 net filename: " + filename);         
    }

请一定帮助我。

由于

这就是我的配置文件中的内容。

   <!-- Log file locaation -->
<param name='File' value='TS_GUI_Logs.coplog'/>
<param name='AppendToFile' value='true'/>

我不想在配置中设置文件名。相反,我想从我的代码背后设置它。

2 个答案:

答案 0 :(得分:1)

你检查过配置文件了吗?此代码从配置文件中读取文件名。

如果您需要所有内容的自定义路径,请更改配置文件中的路径。 (只需确保您知道该设置的所有使用者都在您的代码中。)如果您需要一个自定义路径,则需要创建一个新的FileAppender。

答案 1 :(得分:0)

您可以这样配置log4net:

<log4net debug="true">
  <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
    <file type="log4net.Util.PatternString" value="%property{LogFileName}" />

,应用程序的启动代码将如下所示:

    log4net.GlobalContext.Properties["LogFileName"] = "C:\\aaaaa.log";
    log4net.Config.XmlConfigurator.Configure();