2015-04-15 2 views
1

У меня есть решение, где мне нужно регистрироваться из разных сборок с помощью log4net. Первый проект в решении (PCBClient.cs, веб-клиент) регистрируется как ожидалось, но следующий (WriteUtilities.cs, функции базы данных) не регистрируется вообще. Я следовал инструкциям на Falafel.com, а также follow-on instructions on this SO page, а также нить на DreamInCode.net.Журнал из нескольких проектов в одном решении

Очевидно, что я чего-то не хватает.

Я добавил исходный проект PCBClient в качестве ссылки в WriteUtilities. Я не могу сделать ответный, поскольку он создаст круговую ссылку, может быть, мне нужно сделать ссылки на другую? Я создал новый регистратор в web.config из PCBClient прибавления имени ссылочного узла согласно log4net FAQ: Can I load an appender from another assembly? используя указанную форму:

<appender name="..." type="MyNamespace.MyAppender, MyAssembly"> 

(Я достаточно уверен, что не нужен .cs после того, как имя узла):

<appender name="WriteUtility_TransactionLog" type="log4net.Appender.FileAppender, WriteUtilities"> 
    <File value="WriteUtilityTransactions.log"/> 
    <AppendToFile value="true"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date{yyyy-MM-ddTHH:mm:ss} %logger - %message%newline"/> 
    </layout> 
</appender> 

создал ссылку на него в web.config, а также:

<logger name="WriteUtility_TransactionLog"> 
    <level value="ALL"/> 
    <appender-ref ref="WriteUtility_TransactionLog"/> 
</logger> 

Тогда отмеченные свойства как web.config в PCBC lient и связанный web.config в WriteUtilities как «Копировать, если новый».

В сборке WriteUtilities.cs я добавил:

private static readonly ILog WriteUtilities_TransactionLog = LogManager.GetLogger("WriteUtility_TransactionLog"); 

В AssemblyInfo.cs в проекте PCBClient Я добавил:

// Log4Net configuration 
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)] 

И закомментирована оригинальные ссылки входа в систему как PCBClient & WriteUtilities, так что они должны оба указывать на один выше (я думаю):

//point at logging .dll 
//[assembly: log4net.Config.XmlConfigurator(Watch = true)] 

Я до сих пор не могу войти в систему WriteUtilties, чего мне не хватает?

ответ

0

Измените тег, так что он выглядит следующим образом:

<log4net debug="true"> 

Возможно, это было бы помочь вам решить загадку.

+0

Какой тег вы имеете в виду? В каком файле? – delliottg

+0

Я имею в виду ваш ... элемент. В вашем web.config? Где бы вы не указали свои параметры log4net. Это выводит информацию об отладке на консоль. – Igavshne

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