2010-04-29 19 views
6

Qualcuno sa se è possibile effettuare l'accesso a SSIS (SQL Server Integration Services) tramite log4net? In tal caso, eventuali suggerimenti e insidie ​​di cui essere a conoscenza? Com'è la storia della distribuzione?Utilizzo di log4net come meccanismo di registrazione per SSIS?

So che la soluzione migliore per il mio problema è non utilizzare SSIS. La realtà è che, per quanto odio questa tecnologia POS, la società con cui lavoro incoraggia l'uso di queste app anziché scrivere codice. Meh.

+0

Perché non utilizzare le molte opzioni incorporati in SSIS per la registrazione? –

+0

Non li ho mai provati. Ma i pacchetti precedenti realizzati da altre persone qui hanno generato registri che sono inutili. Credo di poterlo provare per il momento, ma essere in grado di usare i poteri di l4n sarebbe fantastico. – enriquein

+0

Quindi, dopo aver implementato la registrazione SSIS in un file di testo, posso concludere che 1) il formato è piuttosto brutto. 2) l'informazione importante è sempre alla fine della linea. 3) il file di log continua ad essere accodato, non viene mai sovrascritto (che è ciò di cui abbiamo bisogno). Anche io sento che non è flessibile come si vorrebbe. Questo è probabilmente un altro esempio di Microsoft che pensa a ciò che un cliente potrebbe volere invece di chiedere direttamente ai clienti ciò di cui hanno effettivamente bisogno. – enriquein

risposta

3

Quindi per rispondere alla mia stessa domanda: è possibile. Non sono sicuro di come sarà la nostra storia di spiegazioni, poiché ciò avverrà tra poche settimane.

Ho praticamente preso le informazioni da queste fonti e l'ho fatto funzionare. Questo spiega come far funzionare gli assiemi di riferimento con SSIS, click here. Versione TLDR: posizionala nel GAC e copia anche la DLL nella cartella del tuo framework targetted. Nel mio caso, C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727. Per configurare a livello di programmazione log4net ho finito per utilizzare this link come riferimento.

Ecco come il mio codice di configurazione logger assomiglia per la creazione di un file con il timestamp su di esso:

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

Speriamo che questo potrebbe aiutare qualcuno in futuro, o almeno servire come riferimento se mai bisogno di fallo di nuovo.

-2

Scusa, non hai scavato abbastanza in profondità. Sono disponibili 5 diverse destinazioni a cui è possibile accedere e 7 colonne che è possibile scegliere di includere o meno nella registrazione e tra 18 e 50 eventi diversi che è possibile acquisire. Sembra che tu abbia scelto la registrazione predefinita e l'abbia chiusa perché non ha funzionato per te subito.
controllare questi due blog per ulteriori informazioni su cosa si può fare con la registrazione 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

+1

Prima di pubblicare la mia risposta, avevo già provato il meccanismo di registrazione incorporato e giocato con la personalizzazione. Quello a cui non pensavo era usare i gestori di eventi per arricchire quella funzionalità. Il link al blog di Jamie è stato una lettura piuttosto interessante. Penso che anche io darò uno scatto per essere onesti. Questo comunque non risolve il problema con i file di log che diventano fuori controllo, però. Né fissa la capacità di modificare dinamicamente la verbosità del logging. Tuttavia, ritengo che la registrazione SSIS potrebbe essere utile per accedere a qualcosa di diverso dai file. Grazie ancora per il suggerimento. – enriquein

Problemi correlati