2011-02-23 32 views
2

我一直在使用MyEclipse來將一些數據庫表設計爲EJB。在這個過程中,MyEclipse的創建一個名爲LogUtil類,它看起來像這樣:LogLevel.INFO在Jboss日誌中打印爲ERROR [STDERR],出了什麼問題?

public class LogUtil { 

private static final Logger logger; 

static { 
    logger = Logger.getLogger("SupplierDatabaseEJBPU"); 
    logger.setLevel(Level.ALL); 
} 

public static void log(String info, Level level, Throwable ex) { 
    logger.log(level, info, ex); 
} 

public static Logger getLogger() { 
    return logger; 
} 

}

然後,它將插入登錄到號碼的生成的方法,例如:

public void save(PurchaseOrderInput entity) { 
LogUtil.log("saving PurchaseOrderInput instance", Level.INFO, null); 
try { 
    entityManager.persist(entity); 
    LogUtil.log("save successful", Level.INFO, null); 
} catch (RuntimeException re) { 
    LogUtil.log("save failed", Level.SEVERE, re); 
    throw re; 
} 
} 

我不是那種伐木工經驗豐富,所以也許這很容易...

當我運行例如上面張貼的方法,以下是我在我的server.log中得到的。

2011-02-23 09:22:30,301 ERROR [STDERR] 2011-feb-23 09:22:28 se.ahlens.intranet.apps.supplierdatabase.LogUtil log 
INFO: save successful 

我覺得這很混亂。它應該看起來像這樣嗎?我期望一件事:

2011-02-23 00:05:30,348 INFO [SupplierDatabaseEJBPU] INFO: save successful 

回答

2

看來,兩個記錄器鏈接(日期打印兩次)。假設:第一個使用級別信息登錄到控制檯。 Jboss攔截系統輸出流並使用自己的記錄器(使用錯誤級別)記錄它們。

+0

聽起來像是一個很好的解釋。我重寫了生成的日誌,希望現在可以更好地工作。 – Daniel 2011-02-24 14:53:28