Используя log4net как регистрирующийся механизм для SSIS?

Кто-либо знает, возможно ли сделать вход в систему SSIS (SQL Server Integration Services) через log4net? Если так, какие-либо указатели и ловушки для знания? Как история развертывания?

Я знаю, что лучшее решение моей проблемы не состоит в том, чтобы использовать SSIS. Действительность - то, что так, как я ненавижу эту технологию POS, компания, с которой я работаю, поощряет использование этих приложений вместо написания кода. Meh.

6
задан enriquein 29 April 2010 в 14:31
поделиться

2 ответа

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

Я в значительной степени взял информацию из этих источников и заставил ее работать. В этом объясняется, как заставить ссылочные сборки работать с SSIS, щелкните здесь . Версия TL; DR: поместите ее в GAC, а также скопируйте dll в папку целевой платформы. В моем случае C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727. Чтобы программно настроить log4net, я использовал эту ссылку в качестве ссылки.

Вот как выглядит мой код конфигурации регистратора для создания файла с отметкой времени на нем:

using log4net;
using log4net.Config;
using log4net.Layout;
using log4net.Appender;

public class whatever
{
    private ILog logger; 
    public void InitLogger()
    {
        PatternLayout layout = new PatternLayout("%date [%level] - %message%newline");
        FileAppender fileAppenderTrace = new FileAppender();
        fileAppenderTrace.Layout = layout;
        fileAppenderTrace.AppendToFile = false;

        // Insert current date and time to file name
        String dateTimeStr = DateTime.Now.ToString("yyyyddMM_hhmm");
        fileAppenderTrace.File = string.Format("c:\\{0}{1}", dateTimeStr.Trim() ,".log");

        // Configure filter to accept log messages of any level.
        log4net.Filter.LevelMatchFilter traceFilter = new log4net.Filter.LevelMatchFilter();
        traceFilter.LevelToMatch = log4net.Core.Level.All;
        fileAppenderTrace.ClearFilters();
        fileAppenderTrace.AddFilter(traceFilter);

        fileAppenderTrace.ImmediateFlush = true;
        fileAppenderTrace.ActivateOptions();

        // Attach appender into hierarchy
        log4net.Repository.Hierarchy.Logger root = ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root;
        root.AddAppender(fileAppenderTrace);
        root.Repository.Configured = true;
        logger = log4net.LogManager.GetLogger("root");
    }
}

Надеюсь, это поможет кому-то в будущем или, по крайней мере, послужит справочным материалом, если мне когда-нибудь понадобится сделать это снова.

3
ответ дан 17 December 2019 в 22:11
поделиться

Извините, вы копали недостаточно глубоко. Существует 5 различных мест назначения, в которые вы можете войти, и 7 столбцов, которые вы можете включить или не включать в свой журнал, а также от 18 до 50 различных событий, которые вы можете записать при входе в систему. Похоже, вы выбрали ведение журнала по умолчанию и отклонили его, потому что это не сработало для вас из коробки.
Дополнительную информацию о том, что можно сделать с ведением журнала SSIS, можно найти в этих двух блогах: http://consultingblogs.emc.com/jamiethomson/archive/2005/06/ 11 / SSIS_3A00_-Custom-Logging-Using-Event-Handlers.aspx
http://www.sqlservercentral.com/blogs/michael_coles/archive/2007/10/09/3012.aspx

-2
ответ дан 17 December 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: