У меня есть решение, где мне нужно регистрироваться из разных сборок с помощью 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, чего мне не хватает?
Какой тег вы имеете в виду? В каком файле? – delliottg
Я имею в виду ваш ... элемент. В вашем web.config? Где бы вы не указали свои параметры log4net. Это выводит информацию об отладке на консоль. –
Igavshne