Adakah yang punya pengalaman untuk keduanya? Bagaimana mereka saling menumpuk?
Kami berencana menggunakan salah satunya untuk masuk dalam aplikasi perusahaan.
Referensi:
EDIT: Kami tidak memiliki dependensi yang ada untuk nlog atau log4net.
Adakah yang punya pengalaman untuk keduanya? Bagaimana mereka saling menumpuk?
Kami berencana menggunakan salah satunya untuk masuk dalam aplikasi perusahaan.
Referensi:
EDIT: Kami tidak memiliki dependensi yang ada untuk nlog atau log4net.
Jawaban:
Saya baru-baru ini ditugaskan untuk "membuat beberapa loggin '" untuk proyek yang akan datang. Saya tidak punya pengalaman kerangka kerja logging. Saya meneliti, menjalankan tutorial, membuat aplikasi mainan, dll di Log4Net, NLog, dan Perpustakaan Perusahaan selama beberapa hari. Datang kembali 3-4 minggu kemudian dan menempatkan mereka bersama dalam demo yang kohesif. Semoga beberapa di antaranya bermanfaat bagi Anda.
Rekomendasi saya untuk proyek kami adalah ini:
Itu berdasarkan temuan ini (pendapat!):
Jadi jelas saya suka NLog sejauh ini. Namun, tidak cukup untuk menggunakannya meskipun ada solusi lain yang tersedia.
Pertimbangan utama yang belum banyak dibahas adalah dukungan dan pembaruan.
Log4Net belum diperbarui sejak versi 1.2.10 diterbitkan 19 April 2006 .
Sebaliknya, NLog telah didukung secara aktif sejak 2006 akan segera merilis NLog 2.0 yang mendukung banyak platform yang tidak ada ketika log4net terakhir diperbarui seperti:
Setelah memiliki pengalaman dengan kedua kerangka kerja baru-baru ini, saya pikir saya dapat berbagi pandangan tentang masing-masing kerangka kerja.
Saya diminta untuk mengevaluasi kerangka kerja logging untuk aplikasi web yang ada, saya mempersempit pilihan saya ke NLog (v2.0) dan log4net (v1.2.11) setelah melalui berbagai forum online. Inilah temuan saya:
Pengaturan / memulai dengan NLog mudah mati. Anda pergi melalui tutorial Memulai di situs web mereka dan Anda selesai. Anda mendapatkan ide yang adil, bagaimana mungkin dengan nlog. File konfigurasi sangat intuitif sehingga siapa pun dapat memahami konfigurasi tersebut. Sebagai contoh: jika Anda ingin mengaktifkan log internal, Anda mengatur bendera di node header file konfigurasi Nlog, yang mana Anda harapkan. Di log4net, Anda mengatur flag yang berbeda di bagian appSettings web.config.
Di log4net, logging internal tidak menampilkan timestamp yang mengganggu. Di Nlog, Anda mendapatkan log yang bagus dengan stempel waktu. Saya menemukannya sangat berguna dalam evaluasi saya.
Filter di log4net - Sebaiknya Anda periksa pertanyaan saya ini - filter log4net - cara menulis DAN filter untuk mengabaikan pesan log dan jika Anda menemukan jawaban / solusi untuk ini, beri tahu saya. Saya mengerti, ada solusi untuk pertanyaan ini, karena Anda dapat menulis filter khusus sendiri. Tetapi sesuatu yang tidak mudah tersedia di log4net.
Kinerja - Saya mencatat sekitar 3000 pesan log ke basis data menggunakan prosedur tersimpan. Saya menggunakan sederhana untuk loop (int i = 0; i <3000; i ++ ... untuk mencatat pesan yang sama 3000 kali. Untuk menulis: log4net AdoAppender butuh waktu hampir dua kali lipat dari NLog.
Log4net tidak mendukung appynchronous appender.
Itu perbandingan yang cukup bagi saya untuk memilih NLog sebagai kerangka logging. :)
Bagi siapa pun yang terlambat mengunjungi utas ini, Anda mungkin ingin melihat kembali .Net Base Class Library (BCL). Banyak orang melewatkan perubahan antara .Net 1.1 dan .Net 2.0 ketika kelas TraceSource diperkenalkan (sekitar 2005).
Menggunakan TraceSource sangat mirip dengan kerangka logging lainnya, dengan kontrol granular dari logging, konfigurasi di app.config / web.config, dan akses terprogram - tanpa overhead blok aplikasi perusahaan.
Ada juga beberapa perbandingan yang beredar: "log4net vs TraceSource"
Bagi kami, perbedaan utama adalah ...
Lihat Logger.IsDebugEnabled
di NLog versus Log4Net, dari pengujian kami, NLog memiliki overhead yang lebih sedikit dan itulah yang kami kejar (barang latensi rendah).
Cheers, Florian
Pertama lihat sisa tumpukan Anda.
Jika Anda menggunakan NHibernate, ia menggunakan Log4Net secara langsung. Kerangka kerja lain mungkin memiliki penebang khusus lain yang mereka butuhkan.
Selain itu: keduanya berfungsi dengan baik.
Saya sudah menetap di Log4Net sendiri. Mungkin sulit untuk dikonfigurasikan, dan jika tidak dikonfigurasikan dengan benar, akan sulit mengetahui apa yang salah. Tetapi Anda dapat membuatnya melakukan hampir semua hal yang Anda inginkan dari seorang penebang.
Jika Anda tidak memiliki masalah dengan Log4Net, berikut ini adalah artikel yang saya tulis tentang cara memulainya: http://elegantcode.com/2007/12/07/getting-started-with-log4net/
Yah .. Saya menggunakan perpustakaan Enterprise untuk tugas-tugas pencatatan basis data dan sekarang saya beralih ke NLog karena hambatan kinerja.
beberapa info perbandingan:
http://pauliusraila.blogspot.com/2010/10/solving-database-logging-bottlenecks.html
Saya mengulangi hal di atas dan memang suka nLog. Entlib kembung tak perlu.
Re: Log4net Satu hal yang SELALU membuat saya dengan log4net lupa menambahkan berikut ini ke global.asax untuk memasukkan komponen:
log4net.Config.XmlConfigurator.Configure();
Jika Anda pergi di sini, Anda dapat menemukan matriks komprehensif yang mencakup lib NLog dan Log4Net serta Enterprise Lib dan produk lainnya.
Seseorang bisa berpendapat bahwa matriks dilakukan dengan cara menggarisbawahi fitur-fitur dari hanya lib komersial yang ada dalam matriks. Saya pikir itu benar tetapi itu berguna pula untuk mengarahkan pilihan saya versus NLog.
Salam
Seperti yang saya perhatikan, log4net mengunci file output mereka sepanjang waktu aplikasi berjalan, jadi Anda tidak dapat menghapusnya. Kalau tidak, mereka serupa.
Jadi saya lebih suka NLog.
Plug shameless untuk proyek open source yang saya jalankan, tetapi mengingat diskusi yang hidup tentang .NET logging framework yang lebih aktif, saya pikir saya akan memposting tautan wajib ke Serilog .
Untuk digunakan dalam suatu aplikasi, Serilog mirip dengan (dan menarik banyak pada) log4net. Tidak seperti opsi .NET logging lainnya, Serilog adalah tentang menjaga struktur peristiwa log untuk analisis offline. Ketika Anda menulis:
Log.Information("The answer is {Answer}", 42);
Sebagian besar pustaka logging segera membuat pesan menjadi string. Serilog dapat melakukan itu juga, tetapi ia mempertahankan { Answer: 42 }
properti tersebut sehingga nantinya, menggunakan salah satu dari sejumlah penyimpanan data NoSQL, Anda dapat dengan benar menanyakan peristiwa berdasarkan nilai Answer
.
Kami dekat dengan 1.0 dan mendukung semua platform modern (.NET 4.5, Windows Store dan Windows Phone 8).
Saya NLog kedua juga karena ia bekerja dengan kode yang tidak dikelola juga. Saya kira itu bisa menjadi mungkin untuk menggunakan log4net dan log4cxx bersama-sama, tetapi NLog menangani kode yang dikelola dan tidak terkelola di luar kotak.
Saya juga melihat Common.Logging , fasad yang membuat abstraksi dari api logging, mendukung log4net, NLog dan Entreprise Library. Saya tidak berpikir saya akan menggunakannya, tetapi saya suka bagaimana mereka menggunakan lambdas untuk meningkatkan kinerja ketika penebangan dinonaktifkan (fitur yang dibagikan dengan NLog dan mungkin yang lain).
Anda mungkin juga mempertimbangkan Blok Pencatatan Perpustakaan Perusahaan Microsoft . Muncul dengan desainer yang bagus.
Berdasarkan pengalaman saya, SmartInspect mengalahkan NLog dan log4net.
Sangat mudah digunakan, dokumentasi sangat bagus, dan Anda dapat melihat dan memfilter pesan yang sebelumnya dicatat dengan penampil log interaktif mereka, yang merupakan keuntungan dunia nyata yang sangat besar.
Satu hal yang saya suka adalah tampilan tab data, seperti tab browser di Chrome. Setiap tab dapat memberikan tampilan log yang disaring berbeda.