Кто-нибудь использовал log4net с Biztalk? В настоящее время мы изучаем его использование и пытаемся получить доступ к плюсам и минусам, а также к тому, будет ли он соответствовать нашим потребностям.
Biztalk Log4Net
Ответы (3)
Я использовал Log4Net с BizTalk, но скажу, что сразу же столкнулся с проблемами. Каждый вызов из BizTalk приводит к тому, что текущая оркестровка становится обезвоженной (сериализованной), поэтому любой тип, который вы используете в BizTalk, должен быть сериализуемым, а регистратор log4net — нет.
Если вам абсолютно необходимо использовать log4net, есть обертка, которую написал Скотт Колсток: ">здесь.
Предполагая, что вы не заблокированы, я бы просто использовал Enterprise Logging, он предлагает почти те же функции, что и log4net, и работает из коробки с BizTalk. Вы можете найти его здесь.
Что касается плюсов и минусов, я скажу, что они предлагают почти точную функциональность, я фактически создал утилиту-оболочку, которая сделала блок ведения журнала корпоративной библиотеки более похожим на 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);
}
}
А если вам нужно больше, посмотрите здесь а> .
Рассматривали ли вы возможность использования 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 — это нулевая конфигурация.
Я должен сказать, что после использования как log4net, так и MS Enterprise Library для ведения журнала приложений в разных проектах, я предпочитаю log4net. Мне особенно нравится, что с помощью log4net вы можете централизовать конфигурацию в одном месте (например, в базе данных), а не полагаться на локальный сервер app.config для btsntsvc.exe.
Это особенно полезно, если вам нужно развернуть новые экземпляры сервера для добавления в вашу ферму — у вас достаточно дел, не беспокоясь о регистрации конфигурации. Я использовал log4net как с BTS2004, так и с BTS2006R2 и остался доволен. Одна вещь, которую я бы порекомендовал, какую бы структуру ведения журналов вы ни использовали, не попадайте в ловушку использования журнала событий в качестве приемника — когда вы масштабируете 10 серверов приложений BTS, отслеживание ошибок занимает много времени, особенно когда экземпляры оркестрации не связаны с сервером приложений и имеют тенденцию перемещаться по вашему имению! Ведите журнал событий для важных проблем с ОС и службой BTS, а не для пользовательских ошибок приложений, что делает мониторинг SCOM намного менее безболезненным.
К сведению: я тоже использую log4net с сериализуемой оболочкой Colestock, хотя и с некоторыми изменениями.