1. 程式人生 > >LoggerFactory.getLogger(String name)用法

LoggerFactory.getLogger(String name)用法

public static Logger getLogger(String name)用法

1.使用指定類初始化日誌物件
 在日誌輸出的時候,可以打印出日誌資訊所在的類,如下:
 Logger logger = LoggerFactory.getLogger(com.User.class);
       logger.debug("使用者資訊");
       將會打印出: com.User : 使用者資訊

 2.看原始碼:
 LoggerFactory中的getLogger方法,返回一個以name命名的靜態繫結的例項,
 而這個name一般以Logger例項所在的類命名,如通過類名.Class.getName()獲取。

 public
static Logger getLogger(String name) { ILoggerFactory iLoggerFactory = getILoggerFactory(); return iLoggerFactory.getLogger(name); } ILoggerFactory的介面例項在編譯時內部繫結LoggerFactory,這個介面中只有一個public Logger getLogger(String name)方法,根據引數名稱返回適當的例項 看看這個getILoggerFactory()方法. public static ILoggerFactory getILoggerFactory
() { if (INITIALIZATION_STATE == UNINITIALIZED) { INITIALIZATION_STATE = ONGOING_INITIALIZATION; performInitialization(); } switch (INITIALIZATION_STATE) { case SUCCESSFUL_INITIALIZATION: return StaticLoggerBinder.getSingleton().getLoggerFactory(); case NOP_FALLBACK_INITIALIZATION: return
NOP_FALLBACK_FACTORY; case FAILED_INITIALIZATION: throw new IllegalStateException(UNSUCCESSFUL_INIT_MSG); case ONGOING_INITIALIZATION: // support re-entrant behavior. // See also http://bugzilla.slf4j.org/show_bug.cgi?id=106 return TEMP_FACTORY; } throw new IllegalStateException("Unreachable code"); } 這是返回ILoggerFactory的例項,用於調取getLogger方法。 在Logger介面中規定了日誌的輸出的方法,根據相應的引數需要設定 就可以在控制檯看到輸出的日誌資訊了。