无法从记录器对象调用方法“错误”。

时间:2013-12-04 07:37:22

标签: java java.util.logging

package firstAOP;

import java.util.logging.Logger;

public class OrderDAO
{
    private final static Logger logger = Logger.getLogger(OrderDAO.class.getName()); 
    public boolean saveOrder(Order order)
    {
        boolean flag =false;


        try
        {
           //functional code
            flag = true;
        }
        catch(Exception e)
        {
            logger.error(e);            
        }        
        return flag;
    }
}

在上面的代码中,我在“logger.error(e)”行中收到错误 这是错误: 对于Logger类型

,方法error()未定义

其他方法如logger.info正在运行。

如果问的不是太多,请告诉我,我是否正确地声明了记录器。如果我写下会发生什么:

private final static Logger logger = Logger.getLogger(SaveOrder.class.getName()); 

SaveOrder是同一个包中的另一个类。

2 个答案:

答案 0 :(得分:5)

您使用的是java.util.logging.Logger,此记录器没有error()方法。

使用

Logger.log(Level, String);
Logger.log(Level, String, Throwable);

使用java.util.logging.Level

中定义的其中一个级别

Logger.severe(String);

...到你的第二个问题:

记录器声明良好。

如果您将记录器声明更改为

 private final static Logger logger = Logger.getLogger(SaveOrder.class.getName());

然后记录器将有另一个名称。配置日志记录系统时使用该名称。我建议你阅读Java Logging Overview并在有关于java日志系统的特定问题时回来。

答案 1 :(得分:1)

另一种选择:

请尝试以下添加导入:

import org.apache.log4j.Logger;

并删除

import java.util.logging.Logger;

LOG.error(e.getMessage(),e);

另一个例子:

LOG.error("Error in loading the product data for Mass Request : =  "  + requestId);

信息级别日志记录的示例:

LOG.info("Loading the product data...for " + requestId);