Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 27663|Odpoveď: 0

[Zdroj] .net/c# log4net chybová výnimka nezaznamenáva príčinu čísla riadku

[Kopírovať odkaz]
Zverejnené 3. 8. 2017 14:13:01 | | | |
Nedávno bol projekt nasadený v produkčnom prostredí a zistilo sa, že niektoré metódy vyhadzujú anomálne správy

Avšak sú uvedené iba abnormálne chybové informácie a neexistuje abnormálne číslo riadku, iba že existuje problém s konverziou modelu určitým spôsobom

Ale porovnám ich jeden po druhom, je to príliš otravné, prečo nenahrať nesprávne číslo riadku?

Log4net logová konfigurácia je nasledovná:

Konfigurácia logu C# Log4net je podrobne vysvetlená
http://www.itsvse.com/thread-2892-1-1.html
(Zdroj: Architect)

Úmyselne som napísal správu výnimky v metóde Home/Index na mojom lokálnom počítači, aby som zistil, či sa číslo riadku zaznamená:



Zistil som, že súbor error logu zaznamená číslo riadku, čo určite nie je problém s log4net konfiguráciou, pretože konfigurácia na oboch stranách je rovnaká

Môže to byť problém v režime kompilácie???

Môj lokálny počítač je v debug mode a dll skompilovaný oficiálnym serverom je v režime vydania

Potom som zmenil lokálny projekt na režim uvoľnenia a zistil som, že to stále bolo číslo riadku záznamu.

Potom, Baidu, prvá veta:Musíte skopírovať .pdb súbor zodpovedajúci dll

No, je to problém? Potom som išiel priamo do adresára bin, vymazal .pdb súbor zodpovedajúci dll, obnovil webstránku a našiel záznam výnimiek nasledovne:



A naozaj, abnormálne číslo linky nie je zaznamenané!!!!

Je to naozaj problém s .pdb!! Musíte si ponechať .pdb súbor, aby sa číslo riadku zaznamenalo, ak je nezvyčajné!!



Na čo slúži PDB súbor?


PDB súbory: Čo musí vedieť každý vývojár

Čo je to PDB súbor?

Väčšina vývojárov by mala vedieť, že PDB súbory sa používajú na podporu ladenia softvéru. Ale ako presne funguje, možno nevieme. Tento článok popisuje úložisko a obsah súborov PDB. Tiež popisuje, ako debugger nájde PDB súbor zodpovedajúci binay a ako debugger nájde zdrojový kódový súbor zodpovedajúci binay. Tento článok je určený pre všetkých natívnych a spravovaných vývojárov.

Predtým, než začneme, definujme dva pojmy: súkromná zostava, ktorá označuje zostavu generovanú na vlastnom počítači vývojára; Public build, čo znamená build generovaný na verejnom build stroji. Súkromná stavba je relatívne jednoduchá, pretože PDB a Binay sú na rovnakom mieste a zvyčajne máme problémy s verejnou výstavbou.  

Najdôležitejšie, čo by mali všetci vývojári vedieť, je, že "PDB súbory sú rovnako dôležité ako zdrojový kód", bez ktorého sa ani nedá ladiť. Pri verejnej zostave musí symbol server uložiť všetky PDB a keď používateľ nahlási chybu, debugger automaticky nájde príslušný PDB súbor v binay a Visual Studio aj Windbg vedia, ako sa k symbolovému serveru dostať. Pred uložením PDB a binay na symbol server je potrebné tiež zaindexovať zdrojový index behu PDB, teda priradiť PDB a zdroj.  

Ďalšia časť predpokladá, že Symbol Server a Source Server Indexing sú už nastavené. TFS2010 je možné urobiť rovnako jednoducho ako indexovanie zdrojového kódu a kopírovanie symbolového servera pre novú zostavu.

2. Obsah súboru PDB

Oficiálne začínajúc obsah PDB, PDB nie je verejne dostupný formát súboru, ale Microsoft poskytuje API, ktoré pomáha získavať dáta z PDB.

Natívny C++ PDB obsahuje nasledujúce informácie:
* verejné, súkromné a statické funkčné adresy;
* Názov a adresa globálnej premennej;
* Názvy parametrov a lokálnych premenných a posuny na zásobníku;
* typové definície triedy, štruktúry a dát;
* Údaje o vynechaní ukazovateľa rámca pre prechádzanie natívnym zásobníkom na x86;
* Názov a počet riadkov v súbore zdrojového kódu;

.NET PDB obsahuje iba 2 časti informácií:
* Názov súboru v zdrojovom kóde a počet riadkov;
* a názov lokálnej premennej;
* Všetky ostatné údaje sú už zahrnuté v . NET Metadata;  





Predchádzajúci:Disk je offline kvôli politike nastavenej administrátorom
Budúci:Nájdite si technika na web, aby ste spolu založili podnikanie
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com