Log4j 1.* имеет нулевой класс добавления, но я не смог найти эквивалент в log4j 2. Есть ли он? Как настроить нулевое приложение в log4j2.xml?
Как настроить нулевое приложение в log4j2
Ответы (3)
Существует класс NullAppender начиная с версии Log4j2 2.7. В более ранних версиях его не было. Имя, которое он использует в файле конфигурации, — «Null». Его можно добавить в список Appenders следующим образом:
<Appenders>
<Null name="arbritrary_name" />
</Appenders>
person
Peter Dolberg
schedule
27.01.2017
NullAppendar был в основном (почти) пустая реализация интерфейса Appender с использованием AppenderSkeleton в качестве базового класса. Сделать то же самое в Log4j2 тривиально, но вам понадобится некоторый шаблонный код, чтобы заставить его работать, см. документацию Apache на пользовательские добавления.
@Plugin(name = "NullAppender", category = "Core", elementType = "appender", printObject = true)
public class NullAppender extends AbstractAppender {
private static final long serialVersionUID = -701612541126635333L;
private NullAppender(String name, Filter filter, Layout<? extends Serializable> layout) {
super(name, filter, layout);
}
@Override
public void append(LogEvent event) {
// do exactly nothing
}
// blatantly stolen from the Apache doc, all errors (C) by me
@PluginFactory
public static NullAppender createAppender(@PluginAttribute("name") String name,
@PluginElement("Layout") Layout layout,
@PluginElement("Filters") Filter filter) {
if (name == null) {
LOGGER.error("No name provided for NullAppender");
return null;
}
if (layout == null) {
layout = PatternLayout.createDefaultLayout();
}
return new NullAppender(name, filter, layout);
}
}
person
Florian Schaetz
schedule
07.09.2015
Используйте приложение CountingNoOp.
<Appenders>
<CountingNoOp name="DEV_NULL" />
</Appenders>
person
Doug Berkland
schedule
27.09.2016
Начиная с версии 2.6.1
- person mcoolive; 16.02.2017
Appender
и просто добавитьFilter
, который никогда не подходит, например,<ThresholdFilter level="TRACE" onMatch="DENY" onMismatch="DENY"/>
Для чего именно он вам нужен? - person Florian Schaetz   schedule 27.08.2015