LogLevel.INFO在Jboss日志中打印为ERROR [STDERR],有什么问题?

时间:2011-02-23 08:49:33

标签: java logging log4j

我一直在使用MyEclipse来重新设计一些数据库表到EJB。在这个过程中,MyEclipse创建了一个名为LogUtil的类,如下所示:

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

1 个答案:

答案 0 :(得分:2)

似乎有两个记录器被链接(日期被打印两次)。假设:第一个是使用级别信息记录到控制台。 Jboss拦截系统输出流并使用自己的记录器(使用错误级别)记录它们