2012-03-01 3 views

ответ

8

Предполагая, что вы регистрируете свои плагины к базе данных, у вас есть пара вариантов:

  1. Настройка log4net программным способом. Это можно сделать с помощью API log4net и может управляться с помощью объекта конфигурации в crm.
  2. Вставить файл log4net конфигурации в сборке плагина и настроить log4net из потока (как показано ниже в плагин базового класса, что и другие плагины, которые хотят войти могли наследовать)

    namespace TestPlugins 
    { 
        public abstract class BaseLoggingPlugin 
        { 
         protected static readonly ILog _log = LogManager.GetLogger(typeof(BaseLoggingPlugin)); 
    
         static BaseLoggingPlugin() 
         { 
          using(var config = Assembly.GetExecutingAssembly().GetManifestResourceStream("TestPlugins.log4net.config")) 
          { 
           XmlConfigurator.Configure(config); 
          } 
         } 
        } 
    } 
    
+0

Я использовал второй подход - встроенный файл конфигурации в сборку. Он работал как шарм - спасибо! – user1201405

+0

Второй подход для меня тоже! :) Я бы дал +25, если бы мог :) –

+0

@GregOks Я хочу сделать то же самое, но я новичок в log4net и не могу найти подробный шаг за шагом. Если вы могли бы предоставить некоторые инструкции или демонстрационный проект плагина. Я буду очень благодарен вам. thanks –

0

Я хочу чтобы добавить предупреждение к тому, что правильный ответ заканчивается: , если вы регистрируете свою плагиновую сборку как песочницу . сборка (для CRM-онлайн требуется режим песочницы), у вас не будет доступа к файловой системе. В этом случае ваш единственный вариант - Tracing. Удачи!

+0

Справедливая точка @ BenPatterson1, даже если вы работаете за пределами песочницы, вам необходимо убедиться, что пользователь пула приложений имеет доступ к каталогу, в котором вы хотите записать свои файлы журналов. –

Смежные вопросы