У меня есть приложение Async, которое работает только тогда, когда я устанавливаю level = debug. Для уровня «ошибки» он ничего не записывает.log4j2 Async appender работает только для уровня отладки
<Configuration packages="com.custom.appender">
<Appenders>
<CustomLogger name="customLogger"/>
<Async name="customAsync" bufferSize="2" includeLocation="flase">
<AppenderRef ref="customLogger"/>
</Async>
</Appenders>
<Loggers>
<logger name="com.mypackage" level="error">
<AppenderRef ref="customAsync"/>
</logger>
</Loggers>
</Configuration>
Я не уверен, что мне не хватает в этой конфигурации. Это обычай Appender, что я пытаюсь использовать
package com.custom.appender
@Plugin(name = "CustomLogger", category = "Core", elementType = "appender", printObject = true)
public class CustomLogger extends AbstractAppender {
private static volatile CustomLogger instance;
public CustomLogger(final String name, final Filter filter,
final Layout<? extends Serializable> layout) {
super(name, filter, layout);
}
@PluginFactory
public static CustomLogger createAppender(
@PluginAttribute("name") String name,
@PluginAttribute("ignoreExceptions") boolean ignoreExceptions,
@PluginElement("Layout") Layout layout,
@PluginElement("Filters") Filter filter) {
if (layout == null) {
layout = PatternLayout.createDefaultLayout();
}
instance = new CustomLogger(name, filter, layout);
return instance;
}
public static CustomLogger getInstance() {
return instance;
}
@Override
public void append(LogEvent event) {
//Log the event to mongoDB
}
}
Какой тип Appender вы пытаетесь использовать? Это консольный appender? –
Я не думаю, что ссылка на элемент журнала из элемента Async appender верна. Оттуда вы должны получить доступ к приложению. –
https://logging.apache.org/log4j/2.x/manual/configuration.html –