C# Log4net未在定义的文件中记录消息

C# Log4net未在定义的文件中记录消息,c#,.net,log4net,elmah,C#,.net,Log4net,Elmah,我正在使用visual studio 2010, 对于日志记录,我想创建自己的公共库项目,使用log4net和elmah 从我的其他项目中调用它,可以是另一个库项目、web服务或web应用程序。 因此,使用NuGet,我在App.common c#library项目中安装了common.logging和common.logging.log4net和elmah,并在App.common项目的App.config中添加了以下内容 <configuration> <configS

我正在使用visual studio 2010, 对于日志记录,我想创建自己的公共库项目,使用log4net和elmah 从我的其他项目中调用它,可以是另一个库项目、web服务或web应用程序。 因此,使用NuGet,我在App.common c#library项目中安装了common.logging和common.logging.log4net和elmah,并在App.common项目的App.config中添加了以下内容

<configuration>
  <configSections>
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>

    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>

  <common>
    <logging>
      <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net">
        <arg key="configType" value="INLINE" />
      </factoryAdapter>
    </logging>
  </common>

  <log4net>
    <root>
      <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value=".\\App_Data\\log.txt"/>
        <appendToFile value="true" />
        <datePattern value=".yyyy-MM-dd'.log'"/>
        <maxSizeRollBackups value="365"/>
        <staticLogFileName value="false"/>
        <rollingStyle value="Date" />
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>

        <filter type="log4net.Filter.LevelRangeFilter">
          <acceptOnMatch value="true" />
          <levelMin value="INFO" />
          <levelMax value="FATAL" />
        </filter>

        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%newline[%date{dd MMM yyyy HH:mm:ss.fff}](%thread) %-5level: %message (%location)" />
        </layout>
      </appender>

      <level value="DEBUG"/>
      <appender-ref ref="RollingLogFileAppender"/>
    </root>
  </log4net>  
</configuration>

我的logger类如下所示:

private static log4net.ILog logManager = null;

public static log4net.ILog GetLogManager() {
  if (logManager == null) {
    logManager = LogManager.GetLogger("DentalAppLogger");
  }

  return logManager;
}

/// <summary>
/// Log in both Elmah and log4net. 
/// </summary>
/// <param name="exc"></param>
/// <param name="message"></param>
public static void Log(string message, Exception exc = null) {
  if (exc == null) {
    exc = new ApplicationException(message);
  }

  // Log to log4net
  GetLogManager().Error(message, exc);
  // Log to ELMAH
  if (HttpContext.Current != null) ErrorSignal.FromCurrentContext().Raise(exc, ystem.Web.HttpContext.Current);
}
private static log4net.ILog logManager=null;
publicstaticlog4net.iloggetlogmanager(){
if(logManager==null){
logManager=logManager.GetLogger(“DentalAppLogger”);
}
返回日志管理器;
}
/// 
///同时登录Elmah和log4net。
/// 
/// 
/// 
公共静态无效日志(字符串消息,异常exc=null){
如果(exc==null){
exc=新应用程序异常(消息);
}
//登录到log4net
GetLogManager()。错误(消息,exc);
//日志到ELMAH
if(HttpContext.Current!=null)ErrorSignal.FromCurrentContext().Raise(exc,system.Web.HttpContext.Current);
}

我已经创建了一个被零除的异常,并从我的App.Webservice调用它来检查日志函数,但是日志文件并没有在调用方AppData文件夹中创建。我遗漏了什么吗?

你打电话给我了吗,这样你就可以看到log4net在做什么了,是吗?确保它在目录上有写/修改权限谢谢@CodeCaster,我在我的Web服务中添加了log4net.config并添加了[assembly:log4net.config.xmlconfigulator(ConfigFile=“log4net.config”,Watch=true)]在我的App.Common AssemblyInfo.cs中,它现在正在工作:)。再次感谢你。