2009-09-11 4 views
-1

(Примечание. Я видел несколько вопросов, касающихся фреймворков .NET, но не видел ни одного, который бы соответствовал нашим требованиям. т закрыть этот как дубликат)Ищет фреймворк для регистрации произвольных объектов в сильно распределенной и параллельной системе в .NET

Мы нужны рамки регистрации для высоко распределенной и параллельной .NET-приложения со следующими характеристиками:.

  • Она должна быть поточно-, в логах будет производиться многими потоками.
  • Для каждого сообщения журнала необходимо иметь временную метку. Если структура добавит это автоматически, это упростит работу.
  • Помимо отметки времени, по крайней мере, должна быть строгость/многословие или что-то подобное для прикрепления к сообщениям журнала, чтобы они могли быть отфильтрованы им. Дополнительные (ортогональные) предопределенные параметры (источник сообщения, предполагаемая аудитория, тип сообщения, что угодно ...) для игры были бы замечательными.
  • Однако нам все равно нужно добавить наши собственные параметры. Чем больше они рассматриваются как первоклассные рамочные граждане (могут делать то же самое с ними, как и с предопределенным материалом), тем лучше.
  • Структура должна иметь возможность фильтровать сообщения на основе, по меньшей мере, предопределенных параметров. Нам нужно изменить фильтрацию по своему усмотрению во время выполнения.
  • Для этого необходимо разместить объектов, а не строки. Строки могут быть сделаны из этих объектов в конце, но параметры сообщения журнала не должны быть помещены в плоскую строку с самого начала.
  • Поскольку некоторые из журналов будут видны клиентам, нам, возможно, придется интернационализировать их. (Учитывая, что мы хотим регистрировать объекты, а не строки, это не слишком сложно, но чем больше поддержка, тем лучше.)
  • Нам нужно иметь возможность записывать сообщения журнала, оставшиеся после фильтрации в файлы, и читать эти файлы вернитесь. Если структура имеет возможность вытолкнуть и в, нам не нужно это реализовать самостоятельно.
  • Каждое сообщение журнала может быть отправлено одновременно нескольким целям (файл, окно, удаленная машина).
  • Если сообщения журнала должны быть отправлены по сети, возможно, это необходимо сделать в выделенном потоке.
  • Вещь будет использоваться с C#.

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

Но есть ли что-то, что стоит использовать в качестве основы и построить наш материал?

ответ

3

AFAIK log4net делает почти все из этих. Это главным образом уровень детализации, основанный на фильтрации, и хотя вы можете использовать Filters для фильтрации с использованием альтернативных критериев, они не обязательно являются «первоклассными гражданами».

Также, re. «чтение файлов обратно» - я полагаю, вы не ожидаете, что фреймворк протоколов будет поддерживать это напрямую. В конце концов, файлы - это файлы.

+0

+1. См. Http://log4net.sourceforge.net/release/1.2.0.30316/doc/manual/faq.html#thread-safety. Также довольно легко расширить log4net, создав пользовательские приложения. – TrueWill

+0

Ну, я думаю, если это единственный ответ, то, вероятно, там не так много. Благодаря! – sbi