有谁知道是否可以通过log4net在SSIS(SQL Server Integration Services)中进行日志记录?如果是这样,任何指针和陷阱要注意?部署故事如何?使用log4net作为SSIS的日志记录机制?
我知道我的问题的最佳解决方案是不使用SSIS。现实情况是,尽管我讨厌这种POS技术,但我与之合作的公司鼓励使用这些应用程序,而不是编写代码。咩。
有谁知道是否可以通过log4net在SSIS(SQL Server Integration Services)中进行日志记录?如果是这样,任何指针和陷阱要注意?部署故事如何?使用log4net作为SSIS的日志记录机制?
我知道我的问题的最佳解决方案是不使用SSIS。现实情况是,尽管我讨厌这种POS技术,但我与之合作的公司鼓励使用这些应用程序,而不是编写代码。咩。
所以要回答我自己的问题:这是可能的。我不确定我们的部署故事将会如何,因为这将在几个星期后完成。
我几乎从这些来源获取信息并使其工作。本文解释如何使引用程序集使用SSIS,click here。 TLDR版本:将其放置在GAC中,并将dll复制到目标框架的文件夹中。在我的情况下,C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727。以编程方式配置log4net,我最终使用this link作为参考。
这是我的记录器的配置代码的样子与它的时间戳创建一个文件:
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");
}
}
希望这可以帮助别人的未来,或者至少作为一个参考,如果我以往任何时候都需要再做一次。
对不起,你没有深入挖掘。您可以登录到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
在我发布我的答案之前,我已经尝试了内置的日志记录机制,并尝试了自定义。我没有想到的是使用事件处理程序来丰富功能。链接到杰米的博客是一个非常有趣的阅读。我想我也会为此公平一点。尽管如此,这仍然不能解决日志文件失控的问题。它也不能修复dinamycally改变记录的冗长的能力。不过,我感觉SSIS日志记录可能对记录除文件以外的任何内容有用。再次感谢您的建议。 – enriquein 2010-05-03 13:37:42
为什么不使用内置到SSIS日志记录的许多选项? – 2010-04-29 14:38:58
我自己没有尝试过。但之前由其他人制作的软件包生成的日志无用。我想我暂时可以尝试一下,但是能够使用l4n的能力会非常棒。 – enriquein 2010-04-29 17:50:56
因此,在对文本文件实施SSIS日志记录后,我可以得出结论:1)格式非常难看。 2)重要信息总是在行的末尾。 3)日志文件不断追加,它永远不会被覆盖(这是我们需要的)。 我也觉得它不如人喜欢那么灵活。这可能是微软考虑客户想要什么的另一个例子,而不是直接询问客户他们实际需要什么。 – enriquein 2010-04-30 12:51:54