Предположим, у меня есть
public class Something {
private static final Logger log = LogManager.getLogger(Something.class);
public static void doSomething() {
log.info("Doing something.");
}
}
public class Foo {
private static final Logger log = LogManager.getLogger(Foo.class);
public static void doFoo() {
log.info("Doing Foo.");
Something.doSomething();
}
}
public class Bar {
private static final Logger log = LogManager.getLogger(Bar.class);
public static void doBar() {
log.info("Doing Bar.");
Something.doSomething();
}
}
Можно ли настроить Log4j2 для записи в разные файлы журнала на основе стека вызовов?
Таким образом, любые операторы, зарегистрированные после вызова Foo.doFoo()
, записываются в Foo.log, а любые операторы, регистрируемые после вызова Bar.doBar()
, записываются в Bar.log.
Итак, следующее
class Test {
public static void main(String[] args) {
Foo.doFoo();
Bar.doBar();
}
}
выдаст Foo.log с
Doing Foo.
Doing something.
и Bar.log с
Doing Bar.
Doing something.