有誰知道是否可以通過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