Я использую slf4j с log4j, и у меня следующая ситуация:
package x.y.z.base;
public class FTPOperationsBase {
private final Logger log = LoggerFactory.getLogger(FTPOperationsBase.class);
protected FTPClient ftp;
// some more fields
public void connect() {
...
// log all connect exceptions
}
public void disconnect() {
...
// log all disconnect exceptions
};
}
Как видно, пакет x.y.z.base . Теперь у меня есть несколько классов, которые расширяют этот базовый класс (эти классы в настоящее время находятся в пакетах x.y.z.classA, x.y.z.clasB, ... и т. Д.).
Я хочу отдельный файл журнала для каждого из этих классов , так как они действуют как отдельные модули. Но я также хочу как-то поместить журнал из базового класса в эти отдельные журналы, в зависимости от того, какой класс используется, то есть Я не хочу, чтобы базовый класс формы журнала во всех журналах, если выполняется только один подкласс . Например, если я расширил класс:
public class FTPExtendedClass1
extends FTPOperationsBase {
public void doSomething() {...}
}
и сделайте следующую кодовую последовательность:
FTPExtendedClass1 obj1 = new FTPExtendedClass1();
obj1.connect();
obj1.doSomething();
obj1.disconnect();
Я бы хотел, чтобы файл журнала для этого случая был следующим:
- возможная информация / предупреждения / ошибки от connect ()
- возможная информация / предупреждения / ошибки от doSomething ()
- возможная информация / предупреждения / ошибки от отсоединения ()
Это должно иметь место для всех расширенных классов, где doSomething () - это метод, специфичный для класса. Любой способ организовать пакеты / настроить log4j для этого поведения?
Спасибо.