Megosztás a következőn keresztül:


Eseményazonosítók (eseménynaplózás)

Az eseményazonosítók egyedileg azonosítják az adott eseményt. Minden eseményforrás megadhatja a saját számozott eseményeit, valamint azokat a leírási sztringeket, amelyekre az üzenetfájlban vannak megfeleltetve. Az eseménynaplók megjeleníthetik ezeket a sztringeket a felhasználónak. Segíteniük kell a felhasználónak megértenie, hogy mi történt, és javasolni kell, hogy milyen műveleteket kell végrehajtania. A leírást a felhasználók saját problémáik megoldására irányíthatja, nem a rendszergazdáknál vagy a támogatási szakembereknél. További információ: hibaüzenetek útmutatója.

Formátum

Az alábbi ábra egy eseményazonosító formátumát szemlélteti.

  3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
  1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
 +---+-+-+-----------------------+-------------------------------+
 |Sev|C|R|     Facility          |               Code            |
 +---+-+-+-----------------------+-------------------------------+

Sev

Súlyosság. A súlyosság a következőképpen van definiálva:

00 - Siker
01 – Tájékoztató
10 – Figyelmeztetés
11 – Hiba

C

Ügyfélbit. Ez a bit a következőképpen van definiálva:

0 – Rendszerkód
1 – Ügyfélkód

R

Fenntartott bit.

létesítmény

Létesítmény kódja. Ez az érték lehet FACILITY_NULL.

kód

A létesítmény állapotkódja.

Üzenetdefiníciók

Az üzenetek az eseményüzenetfájlban vannak definiálva. Az eseményüzenetfájl leírási sztringjei eseményazonosító alapján indexelhetők, így az Eseménynapló bármely esemény eseményspecifikus szövegét megjelenítheti az eseményazonosító alapján. Minden leírás honosított és nyelvfüggő. További információ az üzenetfájl készítéséről: Üzenetszövegfájlok.

A leírási sztringek tartalmazhatnak beszúrási sztring helyőrzőket az %nűrlapon, ahol %1 az első beszúrási sztringet stb. Például a következő egy mintabejegyzés a .mc fájlban:

MessageId=0x4
Severity=Error
Facility=System
SymbolicName=MSG_CMD_DELETE
Language=English
File %1 contains %2, which is in error.
.

Ebben az esetben a ReadEventLog által visszaadott puffer beszúrási sztringeket tartalmaz. A EVENTLOGRECORD struktúrájának NumStrings tagja a beszúrási sztringek számát jelzi. A StringOffsetEVENTLOGRECORD struktúra az első beszúrási sztring helyét jelzi a pufferben. A FormatMessage függvény meghívásakor a pufferben lévő összes sztring címére mutató DWORD_PTRs tömböt továbbíthatja, és beszúrja a sztringeket az üzenetbe.

A leírási sztring a paraméterüzenetfájl paramétersztringjeinek helyőrzőit is tartalmazhatja. A helyőrzők az n%%formátumúak, ahol a %%1 a paraméter sztringje 1 azonosítóval és így tovább. Azonban önnek kell beszúrnia a paramétersztringeket abba az üzenetsztringbe, amelyet FormatMessage visszaad. Általában meghívja FormatMessage az esemény üzenetsztringjének lekéréséhez. Ezután elemzi az %%n paraméterek üzenetsztringjének értékét. Ha az üzenet egy vagy több paramétert tartalmaz, töltse be a ParameterMessageFile beállításjegyzék-értéket a forráshoz. Az üzenetsztring minden paraméteréhez kérje le az azonosítót, és adja át FormatMessage a paramétersztring lekéréséhez. Cserélje le az üzenetsztring paraméterét a FormatMessage visszaadott paramétersztringre.

Beszúrási sztringek

A beszúrási sztringek nem kötelező nyelvfüggetlen sztringek, amelyek a leírási sztringekben lévő helyőrzők értékeinek kitöltésére szolgálnak. Mivel a sztringek nincsenek honosítva, ezért fontos, hogy ezek a helyőrzők csak nyelvfüggetlen sztringeket, például numerikus értékeket, fájlneveket, felhasználóneveket stb. jelöljenek. A sztring hossza nem haladhatja meg a 32 kilobájtot – 1 karaktert.

Ne használjon több sztringet a nagyobb leírás létrehozásához. A beszúrási sztringeket nem szövegként, hanem adatként kell kezelni. Az alábbi példában például a pszString1 és a pszString2 nem használható beszúrási sztringként a pszDescriptionhoz.

LPSTR pszString1 = "successfully"; 
LPSTR pszString2 = "not"; 
LPSTR pszDescription = "The user was %1 added to the database.";

Az alábbi példában a pszString1 vagy a pszString2 függvényt érdemes használni a pszDescription beszúrási sztringjeként.

LPSTR pszString1 = "c:\\testapp1.c"; 
LPSTR pszString2 = "c:\\testapp2.c"; 
LPSTR pszDescription = "Access denied. Attempted to open the file %1."