Пользовательское имя файла в скользящем лог файле 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