我在我的解決方案的根目錄中有一個文件log4net.xml
。用於複製到bin的文件屬性設置爲Always copy
。我已確認該文件複製到bin目錄。爲什麼log4net配置文件沒有被讀取
內,我已經建立了一個文件的appender(基本上是從本文檔的複製粘貼)的配置:
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="Logs\\log.log" />
<appendToFile value="true" />
<rollingStyle value="Date"/>
<datePattern value="yyyyMMdd-HHmmss" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
我也有這條線在AssemblyInfo.cs
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.xml", Watch = true)]
和伐木者正在建立像這樣的代碼文件:
private static ILog LOGGER = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
我加了log4net.Config.XmlConfigurator.Configure();
(還有FileInfo
參數)到主要Program.cs
。
但是,如果我執行該程序不會創建預期的日誌文件。我懷疑log4net甚至沒有讀取配置文件。
我錯過了什麼嗎?從VS內部執行也不起作用(雖然它以某種方式拾取了控制檯Appender的一部分)。
類似的帖子:
- StackOverflow question 1 - 不適用
- StackOverflow question 2 - 不適用
- StackOverflow question 3 - 符合事先已經
感謝。
編輯
所以我得到這個從文檔刪除複製/粘貼部分VS工作:
<root>
<level value="DEBUG" />
<appender-ref ref="A1" />
</root>
然而,從EXE運行仍然不工作
這可能是一個路徑問題 - 在配置文件中有「Logs \\ log.log」,它應該是「Logs \ log.log」 - 不需要在配置文件值中轉義\ 。 – Tim
權限也可以發揮作用 - 運行程序的用戶需要創建文件和寫入權限才能成功登錄到文件 – dbugger