【发布时间】: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。