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ó.