2010-04-29 31 views
6

Có ai biết nếu có thể đăng nhập vào SSIS (Dịch vụ Tích hợp SQL Server) qua log4net không? Nếu có, bất kỳ gợi ý và cạm bẫy nào cần lưu ý? Câu chuyện triển khai thế nào?Sử dụng log4net làm cơ chế ghi nhật ký cho SSIS?

Tôi biết giải pháp tốt nhất cho vấn đề của mình là không sử dụng SSIS. Thực tế là nhiều như tôi ghét công nghệ POS này, công ty tôi làm việc với khuyến khích việc sử dụng các ứng dụng này thay vì viết mã. Meh.

+0

Tại sao không sử dụng nhiều tùy chọn tích hợp sẵn trong SSIS cho khai thác gỗ? –

+0

Tôi đã không thử chúng bản thân mình. Nhưng những gói trước đó do những người khác tạo ra ở đây đã tạo ra các bản ghi vô dụng. Tôi đoán tôi có thể thử điều đó trong lúc này, nhưng việc có thể sử dụng sức mạnh của l4n sẽ thật tuyệt vời. – enriquein

+0

Vì vậy, sau khi thực hiện SSIS đăng nhập vào một tập tin văn bản tôi có thể kết luận rằng 1) định dạng là khá xấu xí. 2) thông tin quan trọng luôn ở cuối dòng. 3) logfile giữ được nối, nó không bao giờ bị ghi đè (đó là những gì chúng ta cần). Tôi cũng cảm thấy rằng nó không linh hoạt như người ta muốn. Đây có lẽ là một ví dụ khác của Microsoft khi nghĩ về những gì khách hàng có thể muốn thay vì thẳng ra hỏi khách hàng những gì họ thực sự cần. – enriquein

Trả lời

3

Vì vậy, để trả lời câu hỏi của riêng tôi: điều đó là có thể. Tôi không chắc câu chuyện triển khai của chúng tôi sẽ như thế nào vì điều này sẽ được thực hiện sau vài tuần nữa.

Tôi lấy khá nhiều thông tin từ những nguồn này và làm cho nó hoạt động. Điều này giải thích cách làm cho các assembly tham chiếu làm việc với SSIS, click here. Phiên bản TLDR: đặt nó trong GAC và cũng sao chép dll vào thư mục của khung nhắm mục tiêu của bạn. Trong trường hợp của tôi, C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727. Để lập trình cấu hình log4net, tôi đã sử dụng this link làm tham chiếu.

Đây là cách mã cấu hình logger của tôi trông như thế để tạo một tập tin tại thời điểm trên vào nó:

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"); 
    } 
} 

Hy vọng rằng điều này có thể giúp một người nào đó trong tương lai hoặc ít nhất là đóng vai trò như một tài liệu tham khảo nếu tôi cần phải làm điều này một lần nữa.

-2

Rất tiếc, bạn không đào sâu đủ. Có 5 điểm đến khác nhau mà bạn có thể đăng nhập và 7 cột bạn có thể chọn bao gồm hoặc không bao gồm trong nhật ký của mình cũng như từ 18 đến 50 sự kiện khác nhau mà bạn có thể ghi nhật ký. Dường như bạn đã chọn đăng nhập mặc định và đã loại bỏ nó vì nó không hoạt động cho bạn.
Kiểm tra hai blog này để biết thêm thông tin về những gì có thể được thực hiện với SSIS logging: 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

+1

Trước khi tôi đăng câu trả lời của mình, tôi đã thử cơ chế ghi nhật ký dựng sẵn và chơi xung quanh với tùy chỉnh. Những gì tôi không nghĩ đến là sử dụng các trình xử lý sự kiện để làm phong phú thêm chức năng đó. Liên kết tới blog của Jamie là một bài đọc khá thú vị. Tôi nghĩ rằng tôi sẽ cho rằng một shot cũng là công bằng. Tuy nhiên, điều đó vẫn không khắc phục được vấn đề với các logfiles đang phát triển ngoài tầm kiểm soát. Nó cũng không sửa đổi khả năng thay đổi độ dài của việc ghi nhật ký. Tuy nhiên, tôi cảm thấy việc ghi nhật ký SSIS có thể hữu ích khi đăng nhập vào bất kỳ thứ gì ngoài tệp. Cảm ơn một lần nữa vì lời khuyên của bạn. – enriquein

Các vấn đề liên quan