Umístění a názvy aplikačních logů
provozní záležitosti ukládány do textových logů, které ovšem nepopisují změny konfigurací, ale spíše co reálně v daný okamžik který proces dělá) které jsou spíše určeny pro případné hledání provozních chyb a problémů. Nemáme seznam hlášek které se v těchto lozích mohou objevit a myslím že ani není možné jej vytvořit neb se mění podle jednotlivých komponent a hlavně interakce jejich okolí, např pokud operátor zapíše při pokusu o odeslání chybovou/stavovou hlášku je tam uložena tak jak ji poslal operátor. V konfiguraci nastavená úroveň říká OD které úrovně výše budou inforace do textových logů ukládány. Např je-li nastaveno WARNING, budou se ukládat informace typu WARNING, ERROR, a FATAL ale NE INFO a DEBUG.
Pojmenování textových logů vychází z pravidel :
Standardní pojmenování souborů
Po standardní instalaci musí komponenty logovat do těchto souborů:
Systémové komponenty:
%DatasysUms%\Log\%Komponenta%\%Program%_%d.log
Skripty MX aplikací:
%DatasysUms%\Log\MobilChange\Script\%Program%_%d.log
Uživateslké komponenty:
%Local AppData%\Datasys\Ums\Log\%Komponenta%\%Program%_%d.log
kde
▪ | %DatasysUms% je instalační cesta (typicky C:\Program Files\Datasys\Ums\). |
▪ | V instalátoru je cesta "%DatasysUms%\Log\" dostupná pomocí "UmsSetupLibrary.Pathstorage.CommonLog.Destination" a při konfigurování instalovaných komponent je vhodné ji používat. |
▪ | %Local AppData% je cesta pro lokální (neroamující) uživatelská aplikační data (HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Local AppData) |
v C++ je možno ji zjistit pomocí
SHGetSpecialFolderPath(NULL,buf,CSIDL_LOCAL_APPDATA,TRUE);
v .Net pomocí
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
▪ | %Komponenta% je jméno komponenty UMS (CallChange, FaxChange, MobilChange, VoiceChange nebo Common pro společné části) |
▪ | %Program% je jméno programu (nebo skriptu), ke které log patří. |
Příklady pojmenování logů dle těchto pravidel pro systémové komponenty:
C:\Program Files\Datasys\Ums\Log\Common\SmtpReceiver_%d.log
C:\Program Files\Datasys\Ums\Log\CallChange\CcRouter_%d.log
C:\Program Files\Datasys\Ums\Log\FaxChange\FxServer_%d.log
C:\Program Files\Datasys\Ums\Log\MobilChange\MxKernel_%d.log
C:\Program Files\Datasys\Ums\Log\MobilChange\Script\mx_mcfo_%d.log
C:\Program Files\Datasys\Ums\Log\VoiceChange\Line0_%d.log
Kódování
Logy by měly být kódovány v UTF-8 (včetně BOM signatury na začátku souboru).
Úrovně logování
Je-li v konfiguraci nastavena úroveň logování na některou z níže uvedených hodnot, jsou do textových logů ukládány hlášky které jsou rovny nebo vyšší nastavené hodnotě.
Úroveň |
Význam |
Typické použití |
||||||||
FATAL |
Chyby bránící v korektním běhu aplikace |
|
||||||||
ERROR |
Chyby, pro které je definováno nouzové chování |
|
||||||||
WARNING |
Neplatná vstupní data |
|
||||||||
INFO |
Základní úroveň |
|
||||||||
DEBUG |
Periodická hlášení |
V této úrovni by měly být pouze hlášení, která při ostrém provozu není vhodné logovat. Vše ostatní má být již v úrovni INFO. Do DEBUG patří:
|
V zapsaném logu by mělo být na každém řádku uvedeno do které úrovně tento záznam spadá, tedy např:
2013-11-05 00:08:02,727 [7] DEBUG MXLineEMIConnector [linka] - EMI alert message was sent.
2013-11-05 03:02:33,392 [10] ERROR MXLineDbDriver [linka] - Cannot read from table MX_SMS_INQUEUE (line linka): A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)
2013-11-05 03:03:44,883 [1] INFO MXKernel [(null)] - MX kernel started with commandline: "C:\Program Files (x86)\DATASYS UMS\MobilChange\bin\MXKernel.exe" line linka