sql - 在 SSIS 中编写自定义日志提供程序

标签 sql sql-server-2008 logging ssis

我目前正在使用 Microsoft SSIS 和 SQL Server 2008,我想使用以下方法将日志写入文件:

  • 特定日志模式:格式化日期 - 日志级别:日志消息
  • 特定日志级别
  • 与配置文件中的错误消息关联的错误代码

我在网上寻找问题的解决方案,并考虑为 SSIS 编写自己的日志提供程序。

有人知道如何做到这一点吗?或者尝试一下是否只是浪费时间?

感谢您的帮助

最佳答案

就记录 SSIS 而言:

我们在数据库中使用 SSIS 提供的日志记录,该数据库包含有关由我们的 SSIS 专家设计的所有 SSIS 包的元数据。这使我们能够轻松地制定记录哪些操作的企业标准,并利用 Microsoft 为创建日志系统所做的工作。然而,日志数据相对难以读取,因此我们的架构师用 C# 编写了一个解析器,将数据提取到具有我们需要的结构的表中。所以是的,我可以告诉你这是非常值得花时间去做的。我可以轻松阅读错误以及为任何导入处理的步骤。我有一个在失败时运行的电子邮件任务,其中包括对该运行的表的查询,以便必须研究失败的支持人员可以简单地运行电子邮件中的代码来查找发生的情况。这显着减少了研究和修复错误的时间。

添加更多信息以回应 Nazim 的评论: 这是一个相当复杂的数据库,但它包括诸如导入/导出类型、文件名、要获取的文件的位置、与之关联的客户端、频率、文件中的列以及文件类型等信息。它应该保存的数据(用于检查文件的格式是否正确,因为已知客户端会在没有警告的情况下更改它们)。我们使用大量此类信息作为包本身的变量。然后,当包运行时,我们在详细表中记录该运行的详细信息,其中包括解析的数据和实例 ID(在每次运行的每个包的第一个任务中最初填充,并与包 ID 关联)。然后包中的最后一个任务记录结束时间和成功状态(或者如果出错,我们有一个以失败状态结束实例的任务)。很难描述,因为我们的数据库中有 20 多个表,并且具体设计是专有的。如果您想设计自己的数据,只需考虑可能用作变量的所有数据、可能对解决问题有用的所有数据以及您可能需要运行有关导入和导出过程的管理报告的所有数据.

关于sql - 在 SSIS 中编写自定义日志提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2058253/

相关文章:

插入触发器之前的 SQL Server 2008

sql-server-2008 - 重新设定 SQL Server 标识列种子

sql-server-2008 - 当我知道 ISO 8601 中的周数时如何获得一周的第一天

logging - Laravel 日志不显示行和文件

sql - 如何循环主查询中的 cte

mysql - 我需要实现多个选项,但在 mysql 中只有一个正确答案

带有字符串值的 mysql 数据透视表

mysql - SQL 多列相同的连接列

ruby-on-rails-3 - 我可以在工作人员内部获取我的sidekiq工作人员的ID吗?

c# - Log4Net 性能