Saya menggunakan log4net sepanjang waktu, tetapi satu hal yang tidak pernah saya ketahui adalah bagaimana cara mengetahui apa yang terjadi di dalam. Sebagai contoh, saya punya aplikasi konsol dan aplikasi database di proyek saya. Saya membuat beberapa perubahan pada database dan kode, dan sekarang appender database tidak berfungsi lagi. Saya akan mencari tahu mengapa pada akhirnya, tetapi itu akan banyak membantu jika saya bisa melihat apa yang terjadi di dalam log4net.
Apakah log4net menghasilkan segala jenis output yang dapat saya lihat untuk mencoba menentukan sumber masalah saya?
C:\tmp\log4net.txt
menjadiC:\log4net.txt
, maka dapat menghasilkan file teks.<configSections></configSections>
entri pertama di bawah<configuration>
. Kalau tidak, Anda berakhir dengan kesalahan.traceOutputOptions="TimeStamp"
dantraceOutputOptions="DateTime"
diadd
tag tapi perubahan apa-apa dalam isi file log. Apakah ada yang tahu cara mengatur log4net untuk menunjukkan waktu untuk setiap baris / entri dalam file log jejak?Jika Anda menggunakan file konfigurasi log4net, Anda juga dapat mengaktifkan debugging di sana dengan mengubah simpul atas ke:
Ini akan berfungsi setelah konfigurasi dimuat ulang dan dengan asumsi pendengar jejak Anda sudah diatur dengan benar.
sumber
Selain jawaban di atas, Anda dapat menggunakan baris ini untuk melihat log in realtime alih-alih output c: \ tmp \ log4net.txt.
Misalnya, di aplikasi konsol, Anda dapat menambahkan ini dan kemudian menonton hasilnya secara realtime. Ini baik untuk debugging log4net di test harness kecil untuk melihat apa yang terjadi dengan appender yang Anda uji.
sumber
Pastikan aplikasi root di mana titik masuk Anda mencatat sesuatu ke log4net. Berikan salah satu dari ini:
Dengan 2.0.8, saya memiliki situasi yang menarik. Saya membuat proyek perpustakaan dan proyek ujian yang akan menunjukkan kemampuannya. Proyek perpustakaan diatur untuk menggunakan Log4net seperti proyek exe. Proyek exe menggunakan atribut assemblyinfo untuk mendaftarkan konfigurasi, namun saya tidak mendapatkan keluaran logging ke konsol atau file log. Ketika saya menyalakan logging debug internal log4net, saya mendapat beberapa pesan internal yang ditulis ke konsol, tetapi masih tidak ada log normal saya. Tidak ada kesalahan yang dilaporkan. Semuanya mulai berfungsi ketika saya menambahkan kode di atas ke program saya. Log4net jika tidak diatur dengan benar.
sumber
Jika log internal tidak memberi Anda informasi yang cukup, sangat mudah untuk membangun dan men-debug kode sumber . Jika Anda tidak ingin mencampur ini dengan proyek pengembangan Anda, tambahkan aplikasi konsol sederhana yang hanya mencatat pesan, salin proyek Anda
log4net.config
ke aplikasi ini, dan debug kelas yang dimaksud.sumber
Dalam log4net 2.0.8 tampaknya tidak mungkin untuk membuat logging dengan log4net di DLL terpisah. Jika saya mencoba ini, hasilnya sangat aneh: Tidak ada logging yang dilakukan lagi. Dan inisialisasi log4net dengan opsi debug tidak menunjukkan kesalahan.
Seperti kata K0D4, Anda harus memiliki referensi ke log4net di modul utama Anda dan harus memanggilnya sekali pada awal Programm dan semuanya baik-baik saja.
Di versi log4net berikutnya, bug ini mungkin akan diperbaiki.
sumber