私はプロジェクトに取り組んでおり、現在、log4j を使用したログの実装に取り組んでおり、ログの実装方法に興味がありました。私が試している 2 つの実装は次のとおりです。
最初のオプション
そのクラスとすべてのサブクラスのスーパー クラスから単一のログを使用します。
public abstract class AbstractFoo {
protected static Log LOG = LogFactory.getLog(AbstractFoo.class);
...
}
public class Foo extends AbstractFoo {
public void someMethod() {
LOG.info("Using abstract log");
}
}
2 番目のオプション
クラス、スーパー、サブごとに個別のログを使用します。
public abstract class AbstractFoo {
private static Log LOG = LogFactory.getLog(AbstractFoo.class);
...
}
public class Foo extends AbstractFoo {
private static Log LOG = LogFactory.getLog(Foo.class);
public void someMethod() {
LOG.info("Using own log");
}
}
何がより理にかなっており、その理由は何ですか?