Пользовательское имя файла в журнале Log4Net? - PullRequest
18 голосов
/ 23 июня 2009

У нас есть приложение 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

Есть идеи, как лучше всего это реализовать, если предположить, что это возможно?

Приветствия

Brett

Ответы [ 6 ]

36 голосов
/ 22 марта 2010
<file type="log4net.Util.PatternString">
  <conversionPattern value="C:\Logs\log-%date{ yyyy.MM.dd.HH.mm.ss}-[%processid].log" />
</file>

отсюда

16 голосов
/ 10 марта 2010

искать свойства контекста 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" />
8 голосов
/ 23 июня 2009

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

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

1 голос
/ 28 марта 2010

Оформление приложения RollingPatternFileAppender, как и приложения RollingPile Plus с динамическим именем файла. http://mysite.verizon.net/vze14bhji

1 голос
/ 23 июня 2009

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

1 голос
/ 23 июня 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...