Aplikace AN system - Diagnostika
Protokolování událostí a chyb
Aplikace AN system a komponenty, které tato aplikace používá, využívají dva způsoby ukládání diagnostických informací. Buď do protokolu událostí AN system (tabulka ulog v databázi AN system), nebo je ukládají do textových souborů do podadresáře Logs pracovního adresáře aplikace. Rozsah informací je dán implementací konkrétní komponenty nebo funkce. Většina komponent vždy zaznamenává vzniklé chyby, volitelně pak může zaznamenávat diagnostické informace (například výpis komunikace s platebním terminálem, výsledek úspěšného zpracování atd...).
Adresář s protokoly a jeho struktura
Všechny protokoly, generované aplikacemi AN system jsou uloženy v podadresářích adresáře Logs. Doporučené umístění a pojmenování souboru protokolu lze vyjádřit následujícím zápisem.
Logs\{General|[název firmy]}\{název komponenty}\<název souboru>.log
<název soboru> ::= {datum:yyyy-mm-dd}[T{čas:hh-mm-ss}][_{komponenta}]_{uživatel windows}[_{hash|pořadové číslo}].log
- {General|[název firmy]}
- Pokud komponenta pracuje nezávisle na přihlášení uživatele, ukládá své protokoly do podadresáře Logs\General.
- Pokud komponenta pracuje po přihlášení uživatele, ukládá své protokoly do podadresáře Logs\[název firmy]
- {název komponenty}
- Pro název podadresáře lze zvolit buď název komponenty (Engine, Distribution...), funkce (export) nebo typ komponenty (PaymentTerminal, Scanner...). Typ komponenty je preferován v případech, kdy se používají pro jeden účel různé komponenty a pojmenování podle jména by ztěžovalo orientaci. V takových případech doporučujeme zařadit jméno komponenty do jména souboru protokolu. Typickým případem jsou ovladače periferií, kdy existuje mnoho ovladačů platebních terminálů, ale je žádoucí, aby se protokol platebního terminálu nacházel vždy ve stejné složce.
- <název souboru>
- Název souboru začíná vždy údajem datum ve tvaru yyyy-mm-dd. Dalším údajem je volitelný čas ve tvaru hh-mm-ss, od údaje datum je oddělený znakem T. Je-li uveden, obsahuje čas zahájení protokolování. Dále může být uveden název komponenty. Následuje jméno uživatele windows, pod jehož účtem je aplikace spuštěna. Tento údaj je důležitý pro orientaci v protokolech aplikace, ve která se pohybuje velké množství uživatelů. Protokoly, vyžadující unikátní jméno souboru pro každou instanci aplikace AN system, mohou na konec jména souboru zařadit buď pořadové číslo, nebo hash.
- Pro rozhodování, zda použít v názvu souboru čas, je rozhodující potenciální množství souborů. Pokud se funkce/komponenta aktivuje například pomocí naplánované úlohy mnohokrát denně, způsobilo by použití času nárůst poštu souborů protokolu. Naopak ovladač tiskárny, který se inicializuje při spuštění pokladny čas obsahovat může.
Uchování souborů protokolů
Soubory ve složce Logs, starší něž než 90 dní, jsou automaticky smazány. Chcete-li uchovat delší historii, řešením je zálohovat soubory do jiné složky mimo aplikaci AN system.
Seznam složek s protokoly
Tato tabulka obsahuje informace o protokolování jednotlivých modulů a slouží pro základní orientaci v adresářové struktuře. Podrobnosti o protokolování najdete v dokumentaci jednotlivých modulů.
Složka | Modul | Popis |
---|---|---|
Logs \ General \ Runtime | runtime | Hlavní protokol aplikace. |
Logs \ General \ Distribution | distribution | Protokoly o proběhlých aktualizacích Engine aplikace. |
Logs \ General \ Errors | runtime | Protokoly s informacemi o havárii aplikace. |
Logs \ [Firma] \ PaymentTerminal | ovladače periferií | Protokoly o zpracování transakcí na platebním terminálu. |
Logs \ [Firma] \ FiscalModule | ovladače periferií | Protokoly o zpracování fiskalizace. |
Logs \ [Firma] \ Credit | ovladače periferií | Protokoly o zpracování dobíjení kreditu. |
Logs \ [Firma] \ Scale | ovladače periferií | Protokoly o zpracování vážení. |
Příklad adresářové struktury protokolů
[Logs]
[General]
[Distribution]
2022-01-01T10-00-00_kasa1.log
[Runtime]
2022-01-16T08-10-00_kasa1.log
2022-01-16T12-00-15_kasa2.log
[Bago]
[PaymentTerminal]
2022-01-16T08-10-11_ANS.Drivers.BProPaymentTerminal_kasa1.log
2022-01-16T07-45-02_ANS.Drivers.GPEPaymentTerminal_kasa2.log
[Scanner]
2022-01-16T08-10-11_ANS.Drivers.SerialScannerDriver_kasa1.log
2022-01-16T07-45-02_ANS.Drivers.SerialScannerDriver_kasa2.log