Egyéni Log4j2 Appender létrehozása

1. Bemutatkozás

Ebben az oktatóanyagban megismerhetjük az egyedi Log4j2 appender létrehozását. Ha a Log4j2 bevezetését keresi, tekintse meg ezt a cikket.

A Log4j2 sok beépített függelékkel szállít amely felhasználható különféle célokra, például naplózása fájlba, adatbázisba, socketbe vagy NoSQL adatbázisba.

Az alkalmazás igényeitől függően azonban szükség lehet egyedi kiegészítőkre.

A Log4j2 a Log4j továbbfejlesztett verziója, és jelentős javításokkal rendelkezik a Log4j-hez képest. Ezért a Log4j2 keretrendszert fogjuk bemutatni egy egyedi függelék létrehozásának bemutatására.

2. Maven Setup

Szükségünk lesz a log4j-mag függőség a mi pom.xml kezdeni:

 org.apache.logging.log4j log4j-core 2.11.0 

A legújabb verzió log4j-mag itt található.

3. Egyéni Appender

Kétféleképpen valósíthatjuk meg egyedi alkalmazásunkat. Először is a Appender interfész, a második pedig a AbstractAppender osztály. A második módszer egyszerű módot kínál saját egyéni alkalmazásunk megvalósítására, és ezt fogjuk használni.

Ehhez a példához létrehozunk egy MapAppender. Rögzítjük a naplóeseményeket és tároljuk a EgyidejűHashMap a kulcs időbélyegével.

Így hozzuk létre a MapAppender:

@Plugin (name = "MapAppender", category = Core.CATEGORY_NAME, elementType = Appender.ELEMENT_TYPE) public class MapAppender kiterjeszti az AbstractAppender {private ConcurrentMap eventMap = new ConcurrentHashMap (); védett MapAppender (karakterlánc neve, szűrőszűrő) {szuper (név, szűrő, null); } @PluginFactory nyilvános statikus MapAppender createAppender (@PluginAttribute ("név") Karakterlánc neve, @PluginElement ("Szűrő") Szűrőszűrő) {return new MapAppender (név, szűrő); } @Orride public void append (LogEvent event) {eventMap.put (Instant.now (). ToString (), event); }}

Jegyzeteltük az osztályt a @Csatlakoztat megjegyzés, amely azt jelzi, hogy az alkalmazásunk plugin.

A név a plugin azt a nevet jelöli, amelyet megadnánk a konfigurációban ennek az alkalmazásnak a használatához. A kategória meghatározza azt a kategóriát, amelybe a plugint helyezzük. A elemTípus melléklete.

Szükségünk van egy gyári módszerre is, amely létrehozza az appendert. A mi createAppender módszer ezt a célt szolgálja, és a @PluginFactory annotáció.

Itt inicializáljuk az alkalmazásunkat a védett konstruktor meghívásával, és elhaladunk a mellett elrendezés ugyanolyan null, mivel nem fogunk semmilyen elrendezést megadni a konfigurációs fájlban, és arra számítunk, hogy a keret megoldja az alapértelmezett elrendezést.

Következő, felülbíráltuk a mellékel módszer, amely a LogEvent. Esetünkben a mellékel módszer a LogEvent a mi eventMap.

4. Konfiguráció

Most, hogy megvan a miénk MapAppender a helyén szükségünk van a lo4j2.xml konfigurációs fájl az alkalmazás hozzáadásához a naplózáshoz.

Így definiálhatjuk a konfigurációs szakaszt a log4j2.xml fájl:

Ne feledje, hogy a package attribútumnak hivatkoznia kell arra a csomagra, amely az Ön egyéni függelékét tartalmazza.

Ezután az appender részében definiáljuk az appendert. Így adhatjuk hozzá az egyéni függelékünket a konfigurációban szereplő függelékek listájához:

Az utolsó rész az Appender tényleges használata a Naplózók részben. Megvalósításunkhoz használjuk MapAppender root naplózóként, és definiálja a root szakaszban.

Így történik:

5. Hiba kezelése

Az esemény naplózása közbeni hibák kezelésére használhatjuk a hiba módszer örökölte AbstractAppender.

Például, ha nem akarunk olyan eseményeket naplózni, amelyek naplózási szintje alacsonyabb, mint a FIGYELMEZTET.

Használhatjuk a hiba a metódusa AbstractAppender hibaüzenet naplózásához. Így történik az osztályunkban:

public void append (LogEvent esemény) {if (event.getLevel (). isLessSpecificThan (Level.WARN)) {hiba ("WARN szintnél kevesebbet lehet bejelentkezni."); Visszatérés; } eventMap.put (Instant.now (). toString (), esemény); }

Figyelje meg, hogyan mellékel módszer megváltozott. Ellenőrizzük a esemény szint nagyobb, mint FIGYELMEZTET és korán visszatérünk, ha ez kevesebb, mint FIGYELMEZTET.

6. Következtetés

Ebben a cikkben azt láthattuk, hogyan lehet egyéni hozzáfűzni a Log4j2-hez.

Noha számos beépített módja van az adataink naplózásának a Log4j2 által biztosított függelékek használatával, ebben a keretrendszerben vannak olyan eszközeink is, amelyek lehetővé teszik számunkra, hogy saját alkalmazásunkat hozzuk létre alkalmazásunk igényeinek megfelelően.

Szokás szerint a példa a Githubon található.


$config[zx-auto] not found$config[zx-overlay] not found