Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 27663|Jawab: 0

[Sumber] Pengecualian kesalahan .net/c# log4net tidak mencatat penyebab nomor baris

[Salin tautan]
Diposting pada 03/08/2017 14.13.01 | | | |
Baru-baru ini, sebuah proyek diterapkan di lingkungan produksi dan ditemukan bahwa beberapa metode membuang pesan anomali

Namun, hanya informasi kesalahan abnormal yang diberikan, dan tidak ada nomor baris abnormal, hanya ada masalah dengan konversi model dalam metode tertentu

Tapi izinkan saya membandingkannya satu per satu, itu terlalu menyebalkan, mengapa tidak mencatat nomor baris yang salah?

Konfigurasi log log4net adalah sebagai berikut:

Konfigurasi log C# Log4net dijelaskan secara rinci
http://www.itsvse.com/thread-2892-1-1.html
(Sumber: Arsitek)

Saya sengaja menulis pesan pengecualian dalam metode Home/Index di komputer lokal saya untuk melihat apakah nomor baris akan direkam:



Saya menemukan bahwa file log kesalahan akan mencatat nomor baris, yang jelas tidak menjadi masalah dengan konfigurasi log4net, karena konfigurasi di kedua sisi sama

Mungkinkah itu masalah dengan mode kompilasi???

Komputer lokal saya dalam mode debug, dan dll yang dikompilasi oleh server resmi dalam mode rilis

Kemudian, saya mengubah proyek lokal ke mode rilis, dan menemukan bahwa itu masih merupakan nomor baris catatan.

Kemudian, Baidu, kalimat pertama:Anda perlu menyalin file .pdb yang sesuai dengan dll

Nah, apakah ini masalah? Kemudian, saya langsung pergi ke direktori bin, menghapus file .pdb yang sesuai dengan dll, dan kemudian menyegarkan situs web, dan menemukan log pengecualian sebagai berikut:



Benar saja, nomor baris yang tidak normal tidak dicatat!!!!

Apakah ini benar-benar masalah .pdb!! Anda perlu menyimpan file .pdb sehingga nomor baris akan direkam jika tidak normal!!



Untuk apa file PDB?


File PDB: Apa yang harus diketahui setiap pengembang

Apa itu file PDB?

Sebagian besar pengembang harus tahu bahwa file PDB digunakan untuk membantu debugging perangkat lunak. Tapi bagaimana tepatnya dia bekerja, kita mungkin tidak mengenalnya. Artikel ini menjelaskan penyimpanan dan konten file PDB. Ini juga menjelaskan bagaimana debugger menemukan file PDB yang sesuai dengan binay dan bagaimana debugger menemukan file kode sumber yang sesuai dengan binay. Artikel ini ditujukan untuk semua developer Native dan Managed.

Sebelum kita mulai, mari kita definisikan dua istilah: build pribadi, yang digunakan untuk menunjukkan build yang dihasilkan pada mesin pengembang sendiri; build publik, yang berarti build yang dihasilkan pada mesin build publik. private build relatif sederhana, karena PDB dan binay berada di tempat yang sama, dan biasanya masalah yang kita miliki adalah tentang public build.  

Hal terpenting yang perlu diketahui semua pengembang adalah bahwa "file PDB sama pentingnya dengan kode sumber", yang tanpanya Anda bahkan tidak dapat men-debug. Untuk build publik, server simbol perlu menyimpan semua PDB, dan kemudian ketika pengguna melaporkan kesalahan, debugger dapat secara otomatis menemukan file PDB yang sesuai dalam binay, dan baik Visual Studio maupun Windbg mengetahui cara mengakses server simbol. Sebelum menyimpan PDB dan binay ke server simbol, Anda juga perlu mengindeks sumber eksekusi PDB, yaitu mengaitkan PDB dan sumber.  

Bagian berikutnya mengasumsikan bahwa Server Simbol dan Pengindeksan Server Sumber sudah disiapkan. TFS2010 dapat dilakukan sesederhana pengindeksan sumber dan penyalinan server simbol untuk build baru.

2. Isi file PDB

Secara resmi memulai konten PDB, PDB bukanlah format file yang tersedia untuk umum, tetapi Microsoft menyediakan API untuk membantu mendapatkan data dari PDB.

PDB C++ Asli berisi informasi berikut:
* alamat fungsi publik, pribadi dan statis;
* Nama dan alamat variabel global;
* Parameter dan nama variabel lokal dan offset pada tumpukan;
* tipe definisi kelas, struktur dan data;
* Data Penghilangan Penunjuk Bingkai untuk melintasi tumpukan asli pada x86;
* Nama dan jumlah baris dalam file kode sumber;

.NET PDB hanya berisi 2 bagian informasi:
* Nama file kode sumber dan jumlah baris;
* dan nama variabel lokal;
* Semua data lainnya sudah disertakan dalam . Metadata NET;  





Mantan:Disk offline karena kebijakan yang ditetapkan oleh administrator
Depan:Temukan teknisi situs web untuk memulai bisnis bersama
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com