Sto cercando come implementare la registrazione nella mia app C# - è una libreria di classi DLL. Quali sono i framework di registrazione più utilizzati: cosa offrirebbe agli utenti della mia DLL la massima flessibilità e configurabilità? Esiste un equivalente in C# di log4j?Qual è il framework di registrazione più utilizzato in C#?
risposta
Equivalente di log4j per piattaforma .NET è log4net e suppongo sia ampiamente utilizzato.
modifica (non dall'autore): Nel caso in cui non si desidera utilizzare log4net, qui ci sono una varietà di alternative da https://github.com/quozd/awesome-dotnet/blob/master/README.md#logging:
- Essential Diagnostics - Estende le caratteristiche insite di System.Diagnostics spazio dei nomi per fornire la registrazione flessibile
- NLog - NLog - Advanced .NET e Silverlight accedendo
- Logazmic - Open source nLO g visualizzatore per Windows
- ELMAH - Sito ufficiale ELMAH
- Elmah MVC - Elmah per MVC
- Logary - Logary è un rendimento elevato, la registrazione multi-target, metrica, tracciamento e la salute-check libreria per Mono e .NET. La risposta di .NET a DropWizard. Supporta molti obiettivi, creati per i micro-servizi.
- Log4Net - La biblioteca log4net Apache è uno strumento per aiutare le dichiarazioni di registro di uscita programmatore ad una varietà di destinazioni di output
- Serilog - Una libreria di registrazione no-nonsense per l'era NoSQL. Combina il meglio della registrazione diagnostica tradizionale e strutturata in un pacchetto facile da usare.
- StackExchange.Exceptional - Error Handler utilizzato per la rete Stack Cambio
- Semantic Logging Application Block (SLAB) - Estende le caratteristiche inbuilt di System.Diagnostics.Tracing namespace (classe EventSource) per accedere a diversi pozzi, tra cui tavoli da Azure, database, file (JSON, XML, testo). Supporta la registrazione in-process e out-of-process tramite ETW e Rx per il filtraggio/aggregazione degli eventi in tempo reale.
- Foundatio - Un'API di registrazione fluente che può essere utilizzata per registrare i messaggi nell'intera applicazione.
- Exceptionless - senza eccezioni .NET client
- Loupe - la registrazione e il monitoraggio centralizzato .NET. [Proprietario][Livello libero]
- elmah.io - registrazione cloud per le applicazioni .NET web utilizzando ELMAH. Trova bug prima di andare in diretta. Potente ricerca, API, integrazione con Slack, GitHub, Visual Studio e altro ancora. [Free for OSS][$]
- BugSnag - registra gli errori. Include utili informazioni diagnostiche come stack trace, session, release, ecc. Ha un tier gratuito. [Gratuito per OSS] [$]
Uso log4net in quasi tutte le mie applicazioni .NET. Tuttavia, le mie classi non contengono un riferimento a log4net direttamente, nascondo questo problema di infrastruttura dietro un'interfaccia e utilizzo l'iniezione di dipendenza. – JohnRudolfLewis
Stiamo anche utilizzando log4net. È semplicemente fantastico. Incredibilmente flessibile, incredibilmente veloce. –
usa log4net e non guardare mai indietro ... Non usa SO log4net? –
Sono stati utilizzati con successo NLog in numerosi progetti.
Sto usando NLog da anni con successo ed è molto ben fatto progetto.
Usiamo le nostre classi di registrazione, implementate chiamando log4net. Questo ci permette di trarre vantaggio da questo framework flessibile e ampiamente utilizzato evitando nel contempo migliaia di riferimenti diretti nel codice sorgente.
Le persone utilizzano la libreria Enterprise estensivamente. Ma può essere vero che gli sviluppatori stanno passando ad altri prodotti in questi giorni.
Vorrei controllare e vedere se ha la funzionalità necessaria di cui hai bisogno e non troppo gonfiare.
Enterprise Library. E 'robusto e arriva direttamente da Microsoft con tutti i loro migliori pratiche inclusi. Lo usiamo in tutti i nostri progetti. E 'molto flessibile e v'è uno strumento di interfaccia utente che è possibile utilizzare nel caso in cui non si vuole pasticciare con la gestione di registrazione dal file di configurazione.
Downvoting perché Enterprise Library non è robusto. È lento, aggiunge un overhead ridicolo e l'API non è eccezionale. –
@John indipendentemente dalla tua opinione sulla libreria aziendale, è probabilmente il più utilizzato (probabilmente perché proviene direttamente da Microsoft) e fornisce la flessibilità e la configurabilità necessarie per la domanda. Credo che sia una risposta perfettamente valida alla domanda. – desigeek
Che cosa rende ampiamente utilizzato? EntLib.Logging ha 280.000 download (https://www.nuget.org/packages/EnterpriseLibrary.Logging/) su NuGet rispetto a 2.6M per log4net (https://www.nuget.org/packages/log4net/). Infatti NLog ha 1.5M e Serilog ha 130K.La mia principale obiezione è che tu l'hai chiamata Robusto. Tutti i team con cui ho lavorato si sono pentiti di averlo usato. A proposito, "è lento e aggiunge overhead ridicolo" NON è un'opinione. –
log4net è quasi certamente il più comune.
ma io uso Common.Logging - http://netcommon.sourceforge.net/ quanto mi dà la flessibilità
Ci sono una varietà di registrazione implementazioni per .NET attualmente in uso , log4net, Enterprise Library registrazione, NLog, a nome il più popolare. L'aspetto negativo di avere differerent implementazione è che essi non condividono un'interfaccia comune e quindi impongono una particolare implementazione registrazione sugli utenti di tua libreria.
biblioteca Common.Logging introduce una semplice astrazione per consentire di selezionare una specifica implementazione di registrazione in fase di esecuzione. Così si possibile rinviare la decisione che cosa particolare libreria la registrazione per utilizzare fino distribuzione. Gli adattatori vengono utilizzati per che collega un particolare sistema di registrazione a Common.Logging.
Qual è il vantaggio di posticipare la decisione? – BKSpurgeon
Wow, questo ha più di 8 anni. Come detto Common.Logging (e lo fa ancora), è possibile rinviare la propria decisione fino allo spiegamento. Ad esempio; Forse vuoi inserire un whitelabel nel tuo sistema? E gli sviluppatori per la compagnia che vogliono ospitarli preferiscono Enterprise Library Logging, mentre un altro team di devops preferisce log4net. – gef
Sono interessato all'utilizzo di Common.Logging (grazie per il suggerimento, BTW), ma sono stanco del sovraccarico di prestazioni sostenuto dal livello di astrazione/dalla risoluzione runtime. Sai forse qualche benchmark relativo a questo? –
- 1. Qual è il framework di test unitario più utilizzato per diversi tipi di applicazioni Ruby?
- 2. Qual è il @ utilizzato in JavaScript?
- 3. Qual è il font di programmazione standard utilizzato in Textmate?
- 4. Qual è stato il profiler Windows C++ più affidabile e veloce che hai utilizzato?
- 5. Qual è il metodo più utilizzato per accedere al database da C# al giorno d'oggi
- 6. Qual è il framework WSGI più semplice/leggero?
- 7. L'idioma di Pimpl è utilizzato in C#?
- 8. Qual è il $$ (doppio simbolo del dollaro) utilizzato in angolare?
- 9. Qual è il significato di "==" in C?
- 10. Qual è il metodo di crittografia utilizzato su/etc/shadow?
- 11. eccezione di registrazione in C#
- 12. qual è il formattatore di registrazione python predefinito
- 13. Registrazione in MVC (Zend Framework)
- 14. Entity Framework-registrazione Spiegazione
- 15. C#: qual è il modo più semplice per sottrarre tempo?
- 16. Qual è il nuovo framework Tornado di Facebook?
- 17. qual è la funzione di "aspettarsi" utilizzato in js angolari
- 18. Framework di registrazione su Xamarin iOS
- 19. Qual è il ritorno _ in C#
- 20. qual è il printf in C#
- 21. Qual è il valore "revpos" utilizzato negli allegati CouchDB?
- 22. Registrazione registrazione in Play Framework all'avvio del test automatico
- 23. Qual è l'ORM utilizzato da yii?
- 24. Qual è il framework AOP più semplice e meno dipendente in Java?
- 25. Qual è il browser incorporato più piccolo che posso usare in C++?
- 26. Qual è l'approccio migliore per la registrazione?
- 27. Qual è il modo più semplice per gestire array associativi in C#?
- 28. Qual è il vero tipo di lambda in C#?
- 29. Qual è il framework più aggiornato più aggiornato in .NET per la scrittura dei test di accettazione?
- 30. Qual è la funzione più casuale in C++?
darei ReflectInsight un http prova: // http: //insightextensions.codeplex.com/ – code5
C'è un elenco dei quadri di registrazione qui: https://github.com/quozd/awesome-dotnet/blob /master/README.md#logging –