2009-12-30 99 views
2

我正在轉換一個crm 3.0標註庫,並且想要使用log4net進行日誌記錄。我能夠將庫編譯並部署到我的crm服務器,但似乎無法將其記錄到日誌中。我正在使用RollingLogFileAppender。我把log4net.config和庫的編譯版本放在\ server \ assembly文件夾中。我在crm中啓用了跟蹤日誌,並且在此處或在事件查看器中不記錄任何錯誤。我已爲\ server \ assembly文件夾上的網絡服務用戶授予完全訪問權限,這也是我配置要寫入的log4net日誌的位置。log4net與Microsoft Dynamics CRM 3.0標註

當我使用StreamWriter編寫我自己的日誌方法時,它確實有效,但我寧願使用log4net。

我有一種感覺,log4net找不到log4net.config,但我不知道如何確定這一點,而不需要經歷遠程調試或向log4net庫添加額外的調試代碼的麻煩。

有什麼建議嗎?

回答

1

對於插件/工作流活動,您的配置文件將相對於\ Microsoft Dynamics CRM \ Server \ bin目錄(假設您使用的是相對路徑)。我爲CRMWeb \ bin和\ Server \ bin目錄使用單個程序集,因此我實際上有兩個配置文件。一個在CRMWeb \ ISV \ MyISV \ log4net.xml,插件/工作流程位於\ Microsoft Dynamics CRM \ Server \ bin \ ISV \ MyISV \ log4net.xml。

以我的AssemblyInfo.cs我有以下規格:

[組件:log4net.Config.XmlConfigurator(通過ConfigFile = 「ISV \ MyISV \ log4net.xml」,觀看=真)]

一旦您確定您正在尋找配置文件的正確位置......如果您仍然遇到正常滾動文件的問題,請設置一個smtp appender來查看是否收到電子郵件。我發現我有非常有限的權限作爲插件/工作流運行,並且無權訪問文件系統。你會想確保你可以寫入指定的目錄(這聽起來像你可以)。

讓我知道這是否有幫助。

編輯:我的經驗是與CRM 4.0,所以我會根據需要調整路徑。

+0

重新閱讀,似乎唯一的區別是我的是在\ Server \ bin中,因爲你的只是在\ Server中。 3.0有\ Server \ bin目錄嗎? – 2009-12-31 14:00:12

+0

我在任何一個CRM 4.0文件夾中都沒有AssemblyInfo.cs。還有其他地方我應該定義配置文件的位置嗎? – KClough 2010-01-04 14:35:29

+1

assemblyinfo.cs文件將成爲C#項目的一部分,屬性下。我的猜測是沒有指定,它將在Server \ bin目錄中查找。 3.0只有\ Server \程序集與沒有bin文件夾之間?您可以嘗試\ Server目錄來放置您的配置。 您也可以嘗試顯式調用其中一個log4net.Config.XmlConfigurator.Configure重載,因爲您可以在插件中找到最方便的重載。如果參數無效,請嘗試指定FileInfo參數。 – 2010-01-04 17:22:48

相關問題