To tylko ostrzeżenie.
Ustalenie
Dzieje się tak, gdy nie można znaleźć domyślnych plików konfiguracyjnych, log4j.properties
a log4j.xml
aplikacja nie wykonuje jawnej konfiguracji.
Aby to naprawić, po prostu utwórz / skopiuj log4j.properties
lub log4j.xml
do swojej lokalizacji na ścieżce klasy (zwykle takiej samej jak pliki jar).
Opcjonalnie można ustawić opcję Java: -Dlog4j.configuration=file:///path/to/log4j.properties
.
log4j
wykorzystuje Thread.getContextClassLoader().getResource()
do lokalizowania domyślnych plików konfiguracyjnych i nie sprawdza bezpośrednio systemu plików. Znanie odpowiedniej lokalizacji do umieszczenia log4j.properties
lub log4j.xml
wymaga zrozumienia strategii wyszukiwania używanego modułu ładującego klasy. log4j
nie zapewnia domyślnej konfiguracji, ponieważ dane wyjściowe do konsoli lub systemu plików mogą być zabronione w niektórych środowiskach.
Debugowanie
Do debugowania możesz spróbować użyć -Dlog4j.debug=true
parametru.
Konfiguracja log4j.properties
Przykładowa konfiguracja log4j.properties
:
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
# Print only messages of level WARN or above in the package com.foo.
log4j.logger.com.foo=WARN
Oto inny plik konfiguracyjny, który korzysta z wielu programów dołączających:
log4j.rootLogger=debug, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
Apache Solr
Jeśli używasz Solr , skopiuj <solr>/example/resources/log4j.properties
do lokalizacji na ścieżce klasy .
Przykładowa konfiguracja log4j.properties
z Solr wygląda następująco:
# Logging level
solr.log=logs/
log4j.rootLogger=INFO, file, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x \u2013 %m%n
#- size rotation with log cleanup.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize=4MB
log4j.appender.file.MaxBackupIndex=9
#- File to log to and log format
log4j.appender.file.File=${solr.log}/solr.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS}; %C; %m\n
log4j.logger.org.apache.zookeeper=WARN
log4j.logger.org.apache.hadoop=WARN
# set to INFO to enable infostream log messages
log4j.logger.org.apache.solr.update.LoggingInfoStream=OFF
Zobacz też: