我尝试了解SSIS日志记录行为如何工作。我创建一个具有数据流任务的SSIS包。数据流任务包含一些自定义数据流组件。
其中一个覆盖这样的 RegisterLogEntries 方法:
public override void RegisterLogEntries()
{
this.LogEntryInfos.Add("MyCustomLoggerEntryName","Log entry from My Custom Component", DTSLogEntryFrequency.DTSLEF_CONSISTENT);
}
并在 PreExecute-Method 中添加日志条目:
ComponentMetaData.PostLogMessage(MyLogEntryName, ComponentMetaData.Name, "PreExecute methode was fired", DateTime.Now, DateTime.Now, 0, null);
然后,我按照Microsoft所述的相同方式编写了 CustomLogProvider 。
我在SSDT中添加并启用了自定义日志提供程序(SSIS->日志记录)。
如果我在详细信息下 启用所有事件 (OnError,OnExecStatusChange,OnInformation等),则我 获取 使用日志方法在我的自定义日志提供程序中获取我的自定义日志消息。
在详细信息下我 停用至少一个事件 后,我将 无法获取 条目。停用哪个事件都没关系。
有人有这个问题的经验吗?