Biztalk Log4Net

Кто-нибудь использовал log4net с Biztalk? В настоящее время мы изучаем его использование и пытаемся получить доступ к плюсам и минусам, а также к тому, будет ли он соответствовать нашим потребностям.


person John Robbers    schedule 13.04.2010    source источник


Ответы (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);
    }
}

А если вам нужно больше, посмотрите здесь .

person Nix    schedule 13.04.2010

Рассматривали ли вы возможность использования 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 — это нулевая конфигурация.

person tom redfern    schedule 08.09.2011

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

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

К сведению: я тоже использую log4net с сериализуемой оболочкой Colestock, хотя и с некоторыми изменениями.

person Rob Potter    schedule 08.09.2011