С Log4j2, возможно ли записывать в разные файлы журнала на основе стека вызовов? - PullRequest
0 голосов
/ 09 июля 2019

Предположим, у меня есть

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.
...