log4j - Konfiguracja
W poprzednim rozdziale wyjaśniono podstawowe komponenty log4j. W tym rozdziale wyjaśniono, w jaki sposób można skonfigurować podstawowe komponenty za pomocą pliku konfiguracyjnego. Konfiguracja log4j obejmuje przypisanie poziomu, zdefiniowanie Appendera i określenie obiektów układu w pliku konfiguracyjnym.
Plik log4j.propertiesplik jest plikiem konfiguracyjnym log4j, który przechowuje właściwości w parach klucz-wartość. Domyślnie LogManager szuka pliku o nazwielog4j.properties w CLASSPATH.
Poziom głównego programu rejestrującego jest zdefiniowany jako DEBUG. PlikDEBUG dołącza do niego program dołączający o nazwie X.
Ustaw program dołączający o nazwie X, aby był prawidłowym programem dołączającym.
Ustaw układ dla dołączającego X.
log4j.properties Składnia:
Poniżej przedstawiono składnię pliku log4j.properties dla programu dołączającego X:
# Define the root logger with appender X
log4j.rootLogger = DEBUG, X
# Set the appender named X to be a File appender
log4j.appender.X=org.apache.log4j.FileAppender
# Define the layout for X appender
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.conversionPattern=%m%n
log4j.properties Przykład
Korzystając z powyższej składni, definiujemy następujące elementy w log4j.properties plik:
Poziom głównego programu rejestrującego jest zdefiniowany jako DEBUG, The DEBUG appender o nazwie FILE do tego.
Appender FILE jest zdefiniowany jako org.apache.log4j.FileAppender. Zapisuje do pliku o nazwielog.out zlokalizowany w log informator.
Zdefiniowany wzorzec układu to % m% n , co oznacza, że po wydrukowanym komunikacie logowania nastąpi znak nowej linii.
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
Należy zauważyć, że log4j obsługuje podstawianie zmiennych w stylu UNIX, na przykład $ {nazwa_zmiennej}.
Poziom debugowania
Użyliśmy DEBUG z obydwoma aplikatorami. Wszystkie możliwe opcje to:
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- ALL
Te poziomy zostaną wyjaśnione w dalszej części tego samouczka.
Appenders
Apache log4j udostępnia obiekty Appender, które są głównie odpowiedzialne za drukowanie komunikatów logowania do różnych miejsc docelowych, takich jak konsole, pliki, gniazda, dzienniki zdarzeń NT itp.
Z każdym obiektem Appender są skojarzone różne właściwości, które wskazują zachowanie tego obiektu.
własność | Opis |
---|---|
układ | Program Appender używa obiektów układu i skojarzonego z nimi wzorca konwersji do formatowania informacji rejestrowania. |
cel | Celem może być konsola, plik lub inny element w zależności od dodającego. |
poziom | Poziom jest wymagany do kontrolowania filtrowania komunikatów dziennika. |
próg | Z aplikatorem może być powiązany poziom progowy niezależny od poziomu programu rejestrującego. Appender ignoruje wszelkie komunikaty rejestrowania, które mają poziom niższy niż poziom progowy. |
filtr | Obiekty filtru mogą analizować informacje rejestrowania poza dopasowaniem poziomu i decydować, czy żądania rejestrowania powinny być obsługiwane przez określony program Appender, czy ignorowane. |
Możemy dodać obiekt Appender do Loggera, dołączając następujące ustawienie do pliku konfiguracyjnego za pomocą następującej metody:
log4j.logger.[logger-name]=level, appender1,appender..n
Możesz napisać tę samą konfigurację w formacie XML w następujący sposób:
<logger name="com.apress.logging.log4j" additivity="false">
<appender-ref ref="appender1"/>
<appender-ref ref="appender2"/>
</logger>
Jeśli chcesz dodać obiekt Appender do swojego programu, możesz użyć następującej metody:
public void addAppender(Appender appender);
Metoda addAppender () dodaje Appender do obiektu Logger. Jak pokazuje przykładowa konfiguracja, możliwe jest dodanie wielu obiektów programu Appender do programu rejestrującego w postaci listy oddzielonej przecinkami, a każdy z nich drukuje informacje rejestrowania w osobnych miejscach docelowych.
W powyższym przykładzie użyliśmy tylko jednego programu Appender FileAppender . Wszystkie możliwe opcje dołączającego to:
- AppenderSkeleton
- AsyncAppender
- ConsoleAppender
- DailyRollingFileAppender
- ExternallyRolledFileAppender
- FileAppender
- JDBCAppender
- JMSAppender
- LF5Appender
- NTEventLogAppender
- NullAppender
- RollingFileAppender
- SMTPAppender
- SocketAppender
- SocketHubAppender
- SyslogAppender
- TelnetAppender
- WriterAppender
Omówilibyśmy FileAppender w logowaniu do plików, a JDBC Appender byłby objęty logowaniem w bazie danych .
Układ
Użyliśmy PatternLayout z naszym appenderem. Wszystkie możliwe opcje to:
- DateLayout
- HTMLLayout
- PatternLayout
- SimpleLayout
- XMLLayout
Używając HTMLLayout i XMLLayout, możesz wygenerować dziennik w formacie HTML, a także w formacie XML.
Formatowanie układu
Dowiesz się, jak sformatować komunikat dziennika w rozdziale: Formatowanie dziennika .