Пользовательское имя файла в скользящем лог файле Log4Net?

У нас есть приложение ASP.Net, в котором мы используем Log4Net для регистрации деталей в приложении - ничего нового там нет, а скользящие имена файлов журналов находятся в обычном формате:

rolling-log.txt 
rolling-log.txt.1
rolling-log.txt.2 etc.

Каждый пользователь приложения добавляет в файл журнала, файл журнала может быть трудночитаемым для конкретного случая пользователя, и поэтому мы хотели бы каким-либо образом изменить конфигурационный файл, чтобы записывать данные журнала пользователя индивидуально, каждый из которых записывается в конкретный файл, например

<applicationId>rolling-log.txt
<applicationId>rolling-log.txt.1
<applicationId>rolling-log.txt.2
etc.

где каждый пользовательский уникальный идентификатор приложения, состоящий из пятизначного числа, например.

12345rolling-log.txt

Любые идеи о наилучшем способе реализации этого, предполагая, что это возможно?

Приветствия

Бретт

Ответ 1

искать свойства контекста log4net...

в вашем коде:

log4net.GlobalContext.Properties["id"] = "12345";

затем

log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo("configPath"));

в файле конфигурации log4net:

<file type="log4net.Util.PatternString"
            value="%property{id}rolling-log.txt" />

Ответ 2

<file type="log4net.Util.PatternString">
  <conversionPattern value="C:\Logs\log-%date{ yyyy.MM.dd.HH.mm.ss}-[%processid].log" />
</file>

отсюда

Ответ 3

Я считаю, что файл конфигурации Log4Net поддерживает переменные среды (например, USERNAME), а также настраиваемые шаблоны, которые должны дать вам то, что вы хотите.

Посмотрите на "PatternString для конфигурации на основе шаблонов" в заметки о выпуске Log4Net V1.2.10.

Ответ 4

Я не думаю, что файл журнала для пользователя возможен, но вы можете написать собственный слой между log4net и вашим приложением, которое добавляет идентификатор пользователя перед записью в журнал.

Ответ 5

Вы можете написать собственный макет по наследованию из XmlLayoutBase.

Ответ 6

Оформить заказ RollingPatternFileAppender, как и файл rollfileappender плюс динамическое имя файла http://mysite.verizon.net/vze14bhji