2009-12-30 126 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

相关问题