Próbuję zarejestrować pewne informacje we wtyczce CRM 2011. Nie jestem pewien jak skonfigurować log4net. Gdzie powinienem umieścić plik konfiguracyjny log4net i jak odwoływać się do wtyczki? Dziękuję!

4
user1201405 1 marzec 2012, 18:47

2 odpowiedzi

Najlepsza odpowiedź

Zakładając, że rejestrujesz swoje wtyczki w bazie danych, masz kilka możliwości:

  1. Skonfiguruj log4net programowo. Można to zrobić za pośrednictwem interfejsu API log4net i może być sterowane przez jednostkę konfiguracji w CRM.
  2. Osadź plik konfiguracyjny log4net w zespole wtyczek i skonfiguruj log4net ze strumienia (pokazanego poniżej w klasie bazowej wtyczki, z której mogą dziedziczyć inne wtyczki, które chcą logować)

    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);
                }
            }
        }
    }
    
8
Matt Dearing 2 marzec 2012, 20:03

Chcę dodać ostrzeżenie do tego, co kończy się poprawną odpowiedzią: jeśli rejestrujesz swój zestaw wtyczek jako zestaw piaskownicy (tryb piaskownicy jest wymagany dla CRM-online), nie będziesz mieć dostępu do systemu plików. W takim przypadku jedyną opcją jest Śledzenie. Powodzenia!

0
BenPatterson1 2 marzec 2012, 21:59