RollingAppander始终为null而不是返回值

时间:2017-07-20 09:33:50

标签: c# model-view-controller log4net

我在Web APi中的Web配置如下

  public static void MaintainLog(string objname, Exception e)
    {
        //string LogName = objname + ".txt";
        string LogName = "SCRMpro_Log.txt";
        var user = UserManager.GetUserById(WebUtility.GetCurrentUserId());
        string filePath = GetClientWiseFilePath(user, "LOG"); //"//ErrorLogFile//";
        filePath = filePath + LogName;
        // Bind to the root hierarchy of log4net
        log4net.Repository.Hierarchy.Hierarchy root =
          log4net.LogManager.GetRepository()
            as log4net.Repository.Hierarchy.Hierarchy;

        if (root != null)
        {
            // Bind to the RollingFileAppender
            log4net.Appender.RollingFileAppender rfa =
              (log4net.Appender.RollingFileAppender)root.Root.GetAppender("RollingLogFileAppender");

            if (rfa != null)
            {
                // Assign the value to the appender
                rfa.File = System.Web.HttpContext.Current.Server.MapPath(filePath);

                // Apply changes to the appender
                rfa.ActivateOptions();
            }
        }

和我的处理方法。如下所示

log4net.Appender.RollingFileAppender rfa =
          (log4net.Appender.RollingFileAppender)root.Root.GetAppender("RollingLogFileAppender");

并且在这种方法中,我无法使RollingFileAppander值始终为null

initialize

任何人都可以非常感谢这个解决方案。

1 个答案:

答案 0 :(得分:0)

我认为您必须提供记录器名称:

     (log4net.Appender.RollingFileAppender)root.Root.GetAppender("MyLogger");