【问题标题】:log4net doesnt work when project is set to Release build当项目设置为发布版本时 log4net 不起作用
【发布时间】:2017-01-06 03:28:20
【问题描述】:

当我在调试模式下构建项目时,log4net 可以正常工作,因此会按预期创建和写入日志文件。但是,当我在发布模式下构建项目并将文件复制到生产服务器时,log4net 不会创建日志文件或写入日志文件。

如果我使用调试模式复制文件 log4net 在生产服务器中工作。

我启用了内部调试。在发布模式下运行时,内部日志文件显示:

log4net:程序集 [WebAPI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] 没有指定 RepositoryAttribute。

网络配置文件:

  <log4net debug="true">   
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="webapi.log" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="2" />
      <maximumFileSize value="1MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />      
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="LogFileAppender" />
    </root>
  </log4net>
  <system.diagnostics>
    <trace autoflush="true">  
      <listeners>
        <add
          name="textWriterTraceListener"
          type="System.Diagnostics.TextWriterTraceListener"
          initializeData="appTrace.txt" />
      </listeners>
    </trace>
  </system.diagnostics>

在发布模式下构建时如何让 log4net 正常工作?

【问题讨论】:

  • 发布版本是否在本地工作?
  • 你如何引导 log4net 配置文件?你是使用程序集属性还是显式配置加载?
  • 我的 Startup.cs 文件中有以下内容:[程序集:log4net.Config.XmlConfigurator(Watch = true)]
  • 发布版本在本地也不起作用。
  • 尝试在 WebAPI 项目中将 [assembly: RepositoryAttribute("Your.Namespace.Here")] 添加到 AssemblyInfo.cs。

标签: .net log4net


【解决方案1】:

尝试在 WebAPI 项目中将 [assembly: RepositoryAttribute("Your.Namespace.Here")] 添加到 AssemblyInfo.cs。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-07
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多