Lepší protokoly ladění díky těmto vylepšením

Automaticky přeloženo z Deepl

Jako vývojář 4D jste již možná aktivovali protokol ladění, abyste mohli řešit problémy. 4D v17 R5 zavádí několik vylepšení, která vám pomohou tyto soubory analyzovat, například protokolování pouze aktuálního procesu a protokolování volání členských metod ( metod kolekcí nebo objektů ).

Nový selektor pro protokolování procesů

Na adrese SET DATABASE PARAMETER příkaz nyní přijímá nový selektor, Current process debug log recording. Zavolán z libovolné části procesu spustí protokolování pouze pro aktuální proces a vytvoří soubor „4DDebugLog_pX_Y.txt“ ve složce 4D logs (kde X je PUID procesu a Y číslo sekvenčního souboru). Stav protokolu ladění procesu můžete samozřejmě získat také pomocí tohoto nového selektoru pomocí příkazu Get database parameter.

SET DATABASE PARAMETER(Current process debug log recording;2+4+8)

SelektorDebug log recording můžete i nadále používat k záznamu protokolů o činnosti všech procesů, s výjimkou procesů zaznamenávaných pomocí funkce Current process debug log recording.

Připomínáme: Pomocí tohoto řádku kódu můžete snadno přistupovat k logům ladění:

SHOW ON DISK(Get 4D folder(Logs folder))

Na obrázku níže vidíte protokoly generované pěti procesy:

Mějte na paměti, že vzhledem k tomu, že SET DATABASE PARAMETER není thread safe, proces se spustí v kooperativním režimu.

člen METODY protokolování

Ve výchozím nastavení nyní protokoly ladění obsahují volání členských metod. Jsou zaznamenávány příkazem typu 9. Pokud nechcete, aby byly členské metody zahrnuty, stačí zavolat příkaz SET DATABASE PARAMETER příkaz a selektory Debug log recording nebo Current process debug log recording s novou volbou, která má hodnotu 32. Stále můžete volby kombinovat, abyste získali požadované protokoly ladění.

Tento příklad ukazuje, jak logovat rozhraní WiFi a Ethernet v samostatných kolekcích:

SET DATABASE PARAMETER(Current process debug log recording;2+4+8)
C_COLLECTION ($_networkInterfaces;$_ethernet;$_wifi)
$_networkInterfaces:=Get system info.networkInterfaces
$_ethernet :=$_networkInterfaces.query("type = :1"; "ethernet")
$_wifi :=$_networkInterfaces.query("type = :1"; "wifi")
SET DATABASE PARAMETER (Current process debug log recording;0)

Kód vrací:

blank

Více zabezpečení

Dříve se při spouštění protokolů generovaly soubory tak dlouho, dokud nebylo na disku volné místo. Aby se předešlo chybám nebo náhodné aktivaci v okně správy serveru 4D, což by mohlo být nebezpečné, je počet generovaných souborů ve výchozím nastavení omezen na 50. Tento limit můžete změnit prostřednictvím SET DATABASE PARAMETER příkazu a voliče Circular log limitation .

// Limit the number of logs files to 100 (the default number is set to 50)
SET DATABASE PARAMETER(Circular log limitation;100)

Avatar
• Product Owner • Damien Fuzeau se připojil k týmu 4D Product v únoru 2019. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich následný převod do funkčních specifikací. Jeho úkolem je také zajistit, aby dodávané implementace funkcí vyhovovaly potřebám zákazníků. Damien vystudoval softwarové inženýrství na University of Nantes. Ve své bývalé společnosti strávil více než 23 let, nejprve jako vývojář (objevil 4D v roce 1997) a později jako technický manažer a softwarový architekt. Tato společnost je partnerem 4D OEM a nasadila obchodní software založený na 4D pro tisíce uživatelů na stovkách serverů. Damien je tedy zvyklý na 4D vývoj a nasazení ve vícejazyčném kontextu.