当项目设置为 Release build 时,log4net 不起作用
log4net doesnt work when project is set to Release build
当我在调试模式下构建我的项目时,log4net 可以正常工作,所以日志文件会按预期创建和写入。但是,当我在发布模式下构建我的项目并将文件复制到生产服务器时,log4net 不会创建日志文件或写入日志文件。
如果我使用调试模式复制文件,log4net 可以在生产服务器中运行。
我启用了内部调试。当 运行 处于发布模式时,内部日志文件显示:
log4net: Assembly [WebAPI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] does not have a RepositoryAttribute specified.
网络配置文件:
<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 工作?
尝试在 Web API 项目中将 [assembly: Repository Attribute("Your.Namespace.Here")] 添加到 AssemblyInfo.cs。
当我在调试模式下构建我的项目时,log4net 可以正常工作,所以日志文件会按预期创建和写入。但是,当我在发布模式下构建我的项目并将文件复制到生产服务器时,log4net 不会创建日志文件或写入日志文件。
如果我使用调试模式复制文件,log4net 可以在生产服务器中运行。
我启用了内部调试。当 运行 处于发布模式时,内部日志文件显示:
log4net: Assembly [WebAPI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] does not have a RepositoryAttribute specified.
网络配置文件:
<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 工作?
尝试在 Web API 项目中将 [assembly: Repository Attribute("Your.Namespace.Here")] 添加到 AssemblyInfo.cs。