#log4net
#log4net
Вопрос:
Итак, у меня уже работает nhibernate, который использует log4net, и мой web.config в настоящее время выглядит так:
<log4net debug="false">
<appender name="console" type="log4net.Appender.ConsoleAppender, log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n"/>
</layout>
</appender>
<!-- Setup the root category, add the appenders and set the default priority -->
<root>
<priority value="INFO"/>
<appender-ref ref="console"/>
</root>
</log4net>
Теперь моим текущим требованием является возможность создания отдельного файла журнала для каждого основного модуля, который у меня есть в моем приложении.
Сейчас, похоже, это просто запись в консоль, но мне нужно добавить возможность записи в файлы.
Что мне нужно изменить в моей конфигурации, чтобы иметь возможность это делать?
Я хочу иметь возможность в своем коде сказать, что я хочу записать в файл журнала «logfile_1», и если он не существует, создайте его, в противном случае просто добавьте к нему.
Ответ №1:
Действительно просто, промыть и повторить по мере необходимости для нужного количества файлов, вы также можете связать пространства имен с разными файлами, если хотите, чтобы они были разделены таким образом, но я считаю, что проще просто использовать Log2Console для просмотра файла все вместе.
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="k:templog2console.log" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender MinimalLock" />
<layout type="log4net.Layout.XmlLayoutSchemaLog4j" />
</appender>
Не забудьте добавить ссылку appender в свой корневой раздел.
Комментарии:
1. Кроме того, вы можете использовать RollingFileAppender, который имеет более надежный набор функций для автоматического архивирования или автоматического резервного копирования файлов, достигающих определенного размера или даты. RollingFileAppender
2. разве я не могу настроить его так, чтобы мне не нужно было определять имя файла?
3. @codecompleting: создание собственных приложений довольно тривиально, поэтому, если вам нужна такая же функциональность с небольшой разницей в значении файла, я уверен, что вы могли бы ее создать. Я не слишком много изучал это, так как обычно я хочу знать, что и где находятся мои файлы журналов для данного приложения.
4. но если у меня более 1 приложения, как мне указать, какое приложение в моем коде?
5. Я хочу убедиться, что это приложение fileappender не влияет на предыдущее приложение console, которое подключено. Повлияет ли это на то, как log4net был настроен ранее? Спасибо!