SLF4J,每次都要避免编写LoggerFactory.getLogger(MyClassName.class)

lyo*_*omi 5 java log4j slf4j

我正在用Java编写Web应用程序并使用SLF4J进行日志记录.

我已经厌倦了为每个使用日志记录的类编写以下行:

private static final Logger logger = LoggerFactory.getLogger(ThisClassName.class);
Run Code Online (Sandbox Code Playgroud)

为了避免冗余代码,我在想类似的东西

interface Loggable {
    Logger logger();
}
Run Code Online (Sandbox Code Playgroud)

并且每个类都可以实现这个接口然后像AOP这样的魔术插入LoggerFactory部件.

有没有人实现这个或知道如何实现这一目标?

谢谢!

Her*_*ans 12

你在用eclipse吗?如果是这样,为什么不使用带有关键字"logger"的代码模板和以下模板:

${:import(org.slf4j.LoggerFactory, org.slf4j.Logger)}
private final static Logger LOGGER = LoggerFactory.getLogger(${enclosing_type}.class);
Run Code Online (Sandbox Code Playgroud)

这样你只需键入"logger",点击shift+就space可以了.