Tôi đã có một thiết lập log4J trong đó logger gốc được cho là để ghi các thông báo mức ERROR và ở trên giao diện điều khiển và một trình ghi nhật ký khác ghi lại mọi thứ vào syslog.log4j rootLogger dường như kế thừa mức nhật ký của trình ghi nhật ký khác. Tại sao?
log4j.properties là:
# Root logger option
log4j.rootLogger=ERROR,R
log4j.appender.R=org.apache.log4j.ConsoleAppender
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %p %t %c - %m%n
log4j.logger.SGSearch=DEBUG,SGSearch
log4j.appender.SGSearch=org.apache.log4j.net.SyslogAppender
log4j.appender.SGSearch.SyslogHost=localhost
log4j.appender.SGSearch.Facility=LOCAL6
log4j.appender.SGSearch.layout=org.apache.log4j.PatternLayout
log4j.appender.SGSearch.layout.ConversionPattern=[%-5p] %m%n
Trong mã tôi làm
private static final Logger logger = Logger.getLogger("SGSearch");
.
.
.
logger.info("Commencing snapshot index [" + args[1] + " -> " + args[2] + "]");
gì đang xảy ra là tôi có được giao diện điều khiển khai thác gỗ cho tất cả các cấp khai thác gỗ. Điều gì dường như đang xảy ra là mức độ cho SGSearch ghi đè mức thiết lập cho trình ghi gốc bằng cách nào đó. Tôi không thể hiểu được.
Tôi đã xác nhận rằng Log4J đang đọc nộp các tài sản tôi nghĩ rằng đó là, và không có khác (thông qua các tùy chọn -Dlog4j.debug
)
Tôi gặp sự cố/sự nhầm lẫn này. Xem http://stackoverflow.com/questions/3023690/why-is-log4j-rootlogger-not-filtering-log-events-according-to-event-level. –