[英]Log4net not logging on Azure Webapp
對於 web 服務,我已經配置了 log4net,並且在本地可以正常工作,但當 webapp 部署在 Azure Webapp 上時就不行了。 該目錄已創建,但文件中沒有記錄任何內容..
這是我的配置:
<log4net>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="log/sms.log" />
<appendToFile value="true" />
<maximumFileSize value="10MB" />
<maxSizeRollBackups value="10" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level - %message%newline" />
</layout>
</appender>
<logger name="TheLogger">
<appender-ref ref="RollingFile" />
</logger>
在我的 AssemblyInfo.cs 中,我有:
[assembly: XmlConfigurator(Watch = true)]
在啟動 class 我有:
public static ILog Logger { get; private set; }
public void Configuration(IAppBuilder appBuilder)
{
Logger = LogManager.GetLogger("TheLogger");
Logger.Info("Application start...");
}
顯然,我的配置正在被拾取,因為在我的日志文件中寫入了小時/日期格式以及應用程序啟動...但不是日志記錄信息。 我錯過了什么?
確保您不要忘記添加root
配置。 是否正在調試以在發布模式下在Azure中進行部署和部署?
<log4net>
<root>
<level value="INFO" />
<appender-ref ref="RollingFile" />
</root>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<!-- ... -->
</appender>
</log4net>
我遇到了同樣的問題並找到了解決方案。 我不得不在.Net Core API的程序class中替換這兩行代碼:
XmlDocument log4netConfig = new XmlDocument();
log4netConfig.Load(File.OpenRead("log4net.config"));
有了這個:
var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));
原因是因為在.Net Framework API 中我使用了程序集屬性來設置這個,現在我需要這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.