2010-04-13 3 views
4

Кто-нибудь использовал log4net с Biztalk? Мы в настоящее время изучаем его использование и пытаемся получить доступ к «за»/«против», и будет ли он соответствовать нашим потребностям.Biztalk Log4Net

ответ

8

Я использовал Log4Net с BizTalk, но я скажу, что из коробки я столкнулся с проблемами. Каждый вызов BizTalk приводит к тому, что текущая оркестровка становится обезвоженной (сериализованной), поэтому любой тип, который вы используете в BizTalk, должен быть сериализуемым, а loglognet log4net не был.

Если вам абсолютно необходимо использовать log4net, есть обертка, которую написал Scott Colestock here.

Предполагая, что вы не заблокированы, я бы просто использовал Enterprise Logging, он предлагает почти ту же функциональность, что и log4net, и работает из коробки с BizTalk. Вы можете найти его here.

За и против, я скажу, что предлагаю почти точную функциональность, я на самом деле закончил создание утилиты-обертки, которая сделала блок регистрации журналов Enterprise больше похож на log4net.

public static class Logging 
{ 

    public static void LogMessage(TraceEventType eventType, string category, string message) 
    { 
     LogEntry logEntry = new LogEntry(); 
     logEntry.Severity = eventType; 
     logEntry.Priority = 1; 
     logEntry.Categories.Add(category); 
     logEntry.Message = message; 
     Logger.Write(logEntry); 

    } 

    public static void LogError(string category, string message) 
    { 
     LogMessage(TraceEventType.Error, category,message); 
    } 

    public static void LogInfo(string category, string message) 
    { 
     LogMessage(TraceEventType.Information, category, message); 
    } 
    public static void LogVerbose(string category, string message) 
    { 
     LogMessage(TraceEventType.Verbose, category, message); 
    } 
} 

И если вам нужно больше посмотреть here.

+0

ищет больше плюсов/минусов –

2

Должен сказать, что после использования log4net и MS Enterprise Library для регистрации приложений в разных проектах я предпочитаю log4net. Мне особенно нравится, что с помощью log4net вы можете централизовать конфигурацию в одном месте (например, в базе данных), вместо того, чтобы полагаться на локальный сервер app.config для btsntsvc.exe.

Это особенно полезно, если вам нужно выкрутить новые экземпляры сервера для добавления в вашу ферму - у вас достаточно, чтобы не беспокоиться о настройке журнала. Я использовал log4net как с BTS2004, так и с BTS2006R2 и был удовлетворен. Одна вещь, которую я бы порекомендовал независимо от того, какую инфраструктуру ведения журнала вы используете, не попадает в ловушку использования Журнала событий как приемника - когда вы масштабируетесь на 10 серверах приложений BTS, процесс отслеживания ошибок занимает много времени, особенно экземпляры оркестровки не имеют сходства с сервером приложений и, как правило, перемещаются по вашему имуществу! Храните журнал событий для важных проблем с ОС и BTS, а не из-за ошибок пользовательского приложения - делает мониторинг SCOM намного менее безболезненным.

FYI - Я также использую log4net с сериализуемой оболочкой Colestock, хотя и с несколькими настройками.

3

Считаете ли вы использование ETW. Это, на мой взгляд, способ пойти на инструмент BizTalk. http://blogs.msdn.com/b/asgisv/archive/2010/05/11/best-practices-for-instrumenting-high-performance-biztalk-solutions.aspx

Один из недостатков использования как log4net, так и Enterprise Logging - вам нужна конфигурация, чтобы включить его. Таким образом, вам необходимо управлять файлами btsntsvc.exe.config на всех серверах в вашей группе biztalk, которые могут быть накладными расходами.

ETW - это нулевая конфигурация.

Смежные вопросы