log4j - formatowanie dziennika
Apache log4j udostępnia różne Layoutobiekty, z których każdy może formatować dane logowania według różnych układów. Możliwe jest również utworzenie obiektu Layout, który formatuje dane logowania w sposób specyficzny dla aplikacji.
Wszystkie obiekty układu otrzymują plik LoggingEvent obiekt z Appenderobiekty. Obiekty Layout następnie pobierają argument komunikatu z LoggingEvent i stosują odpowiedni ObjectRenderer w celu uzyskania reprezentacji String komunikatu.
Typy układów
Klasa najwyższego poziomu w hierarchii jest klasą abstrakcyjną org.apache.log4j.Layout. Jest to klasa bazowa dla wszystkich innych klas układu w interfejsie API log4j.
Klasa Layout jest definiowana jako abstrakcyjna w aplikacji, nigdy nie używamy tej klasy bezpośrednio; zamiast tego pracujemy z jego podklasami, które są następujące:
DateLayout
HTMLLayout
PatternLayout.
SimpleLayout
XMLLayout
Metody układu
Ta klasa zapewnia szkieletową implementację wszystkich typowych operacji we wszystkich innych obiektach Layout i deklaruje dwie metody abstrakcyjne.
Sr.No. | Metody i opis |
---|---|
1 | public abstract boolean ignoresThrowable()
Wskazuje, czy informacje rejestrowania obsługują dowolny obiekt java.lang.Throwable przekazany do niego w ramach zdarzenia rejestrowania. Jeśli obiekt Layout obsługuje obiekt Throwable, to obiekt Layout nie ignoruje go i zwraca wartość false. |
2 |
public abstract String format(LoggingEvent event)
Poszczególne podklasy układu implementują tę metodę do formatowania określonego układu. |
Oprócz tych metod abstrakcyjnych klasa Layout zapewnia konkretną implementację dla metod wymienionych poniżej:
Sr.No. | Metody i opis |
---|---|
1 |
public String getContentType()
Zwraca typ zawartości używany przez obiekty Layout. Klasa bazowa zwraca tekst / zwykły jako domyślny typ zawartości. |
2 |
public String getFooter()
Określa stopkę komunikatu logowania. |
3 |
public String getHeader()
Określa informacje nagłówka komunikatu logowania. |
Każda podklasa może zwracać informacje specyficzne dla klasy, zastępując konkretną implementację tych metod.