我在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
任何人都可以非常感谢这个解决方案。
答案 0 :(得分:0)
我认为您必须提供记录器名称:
(log4net.Appender.RollingFileAppender)root.Root.GetAppender("MyLogger");