Используйте два регистратора, которые регистрируют два отдельных файла в разных форматах
У меня есть приложение Spring, которое использует logback-classic для входа в файл. У меня есть механизмы оповещения, которые смотрят на текущие журналы для различных вещей. Я хочу обновить свое приложение до Steno. Для этого я пытаюсь использовать logback-steno. У меня есть файл logback.xml в моем проекте, который выглядит примерно так:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${catalina.base}/logs/app.log</file>
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="com.groupon.users.LogLayout" />
</encoder>
</appender>
<logger name="com.amir.users" level="DEBUG"/>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>20000</queueSize>
<discardingThreshold>0</discardingThreshold>
<appender-ref ref="FILE" />
</appender>
<root level="INFO">
<appender-ref ref="ASYNC" />
</root>
</configuration>
Регистрация в фильтре выглядит примерно так:
public class RequestTransactionFilter implements Filter {
private Logger logger;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
logger = LoggerFactory.getLogger(RequestTransactionFilter.class);
enter code here
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
logger.info("Started");
chain.doFilter(request, response);
logger.info("Completed");
}
@Override
public void destroy() {}
public void setLogger(Logger logger) {
this.logger = logger;
}
}
Я хочу быть в состоянии сделать что-то вроде этого:
@Override
public void init(FilterConfig filterConfig) throws ServletException {
logger = LoggerFactory.getLogger(RequestTransactionFilter.class);
steno_logger = com.arpnetworking.steno.LoggerFactory.getLogger(RequestTransactionStenoFilter.class);
}
Это возможно? Будет ли slf4j поддерживать такую конфигурацию? Я новичок во всем этом, поэтому, если мой вопрос глуп, я заранее прошу прощения.