简而言之:与许多教程不同,无法识别对象“ logger”。
问题本身并不是很严重,我可以轻松解决。但是,看到此“记录器”在我的intellIj编辑器中显示为红色非常令人沮丧。我正在浏览文档和博客,但没有发现问题所在。
我的代码段:
@Override
public void insertTicketStatut(TicketStatut pTicketStatut) {
String vSQL = "INSERT INTO statut {id, libelle} VALUES {:id, :libelle}";
BeanPropertySqlParameterSource vParams = new BeanPropertySqlParameterSource(pTicketStatut);
NamedParameterJdbcTemplate vJdbcTemplate = new NamedParameterJdbcTemplate(getDataSource());
try {
vJdbcTemplate.update(vSQL, vParams);
} catch (DuplicateKeyException pE){
logger.error("Le TicketStatut existe déjà ! id="+ pTicketStatut.getId(),pE);
}
}
将鼠标悬停在记录器上会显示“无法解析符号'记录器' 感谢您的帮助。
答案 0 :(得分:1)
记录器需要实例化或更好地注入。看来您没有这样做。当您使用诸如log4j之类的日志记录框架时,初始化将如下所示:
static Logger logger = Logger.getLogger(MainApp.class.getName());
当您向我们展示整个课程时,我们可以看到更多细节并且可以做出更好的猜测。
可以在here中找到有关log4j和spring的教程。
答案 1 :(得分:1)
推荐使用sl4j
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
然后实例化:
//generic way to declare logger to be able to copy/paste to other classes
//without changing the class name
private final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
在依赖性方面,包括用于sl4j实现的绑定(可以是log4j)。
可以在这里参考:
答案 2 :(得分:0)
确实,我没有正确管理我的导入:
我添加了:
private final Log logger = LogFactory.getLog(TicketDaoImpl.class);
来自
org.apache.commons.logging.Log;
愚蠢的注意力缺乏
我还在看Baeldung上log4j / sl4j的文档。谢谢^^