項目中 用到了 Log4Net 使用的是
//為項目注冊Log4Net.config配置文件
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config",ConfigFileExtension = "config", Watch = true)]
這種方式配置 log4net 寫日志到數據庫。
但是項目發布到IIS不寫日志。
項目分別有 WEB項目(mvc),Core (類庫項目),Infrastructure(類庫,log4的實體映射在這里)
項目 web (使用上面提到的方式注冊 Log4Net.config配置文件 )對 在 mvc Filter 使用了 寫日志(開發調試環境沒為題)
但是 core 項目 有人實現了 寫日志公共方法,(但是此項目沒有 注冊 Log4Net.config配置文件),所有整個項目 最終發布不寫日志。
解決方法: 在 core 項目 的 AssemblyInfo.cs 添加 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config",ConfigFileExtension = "config", Watch = true)]
整個項目正常寫日志。
總結:log4Net 的 配置文件應該注冊到 有具體調用的項目中才能生效。
項目架構不要重復添加依賴,具體到 我遇到的這個項目,應該 把 core 項目的 寫日志 和 web 項目的 寫日志 分離到 單獨的項目 或者 都放在 web 項目。