我想实现一个类库中的日志记录功能,这个类库本身在webservice中被引用。我试着添加app.config并做了所有需要做的事情,但是当抛出异常时,log4net似乎什么也不做。
我的app.config

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="D:\\mylogfile.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="5" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <filter type="log4net.Filter.StringMatchFilter">
        <stringToMatch value="test" />
      </filter>
      <filter type="log4net.Filter.StringMatchFilter">
        <stringToMatch value="error" />
      </filter>
      <filter type="log4net.Filter.DenyAllFilter" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %level %logger - %message%newline%exception" />
      </layout>
    </appender>
    <root>
      <level value="INFO"/>
      <appender-ref ref="RollingFileAppender"/>
      <appender-ref ref="ConsoleAppender" />
    </root>
  </log4net>

在assemblyinfo.cs中:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "app.config")]

在logmanager.cs中:
private static readonly ILog Log = log4net.LogManager.GetLogger
            (MethodBase.GetCurrentMethod().DeclaringType);
public static void WriteLog(Exception ex)
{
    Log.Error(ex);
}

你能告诉我出什么事了吗?如何才能为我的类库获得Log4NET?
谢谢你

最佳答案

在运行时,除非显式声明,否则始终从主机应用程序使用配置文件。以防万一,使用web.config而不是app.cofig。而是提到一些其他自定义配置文件名,并确保将该文件复制到web服务的虚拟目录中。正如Chibacity所说,确保对日志文件的权限。最好将其保存在web服务主机的app_数据文件夹中。

07-26 09:34
查看更多