为了账号安全,请及时绑定邮箱和手机立即绑定

无法解析 DuplicateKeyException 上的符号“logger”

无法解析 DuplicateKeyException 上的符号“logger”

慕码人8056858 2022-12-21 14:41:10
简而言之:与许多教程不同,对象“记录器”未被识别。问题本身并不是很严重,我可以轻松解决。然而,看到这个“记录器”在我的 intellIj 编辑器中保持红色是非常令人沮丧的。我正在浏览文档和博客,但看不出问题所在。我的片段:@Overridepublic 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);    }}将鼠标悬停在记录器上会显示“无法解析符号‘记录器’感谢您的帮助。
查看完整描述

3 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

推荐使用 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)。


可以参考这里:


使用 slf4j 进行日志记录


查看完整回答
反对 回复 2022-12-21
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

记录器需要实例化或更好地注入。看来你没有那样做。当您使用某种日志记录框架(如 log4j)时,初始化将如下所示:

static Logger logger = Logger.getLogger(MainApp.class.getName());

当你向我们展示整个班级时,我们可以看到更多细节并且可以更好地猜测。

可以在此处找到 log4j 和 spring 的教程。


查看完整回答
反对 回复 2022-12-21
?
精慕HU

TA贡献1845条经验 获得超8个赞

事实上,我没有妥善管理我的进口:

我补充说:

    private final Log logger = LogFactory.getLog(TicketDaoImpl.class);

org.apache.commons.logging.Log;

愚蠢的缺乏关注。

我也在看 Baeldung 上 log4j/sl4j 的文档。谢谢^^


查看完整回答
反对 回复 2022-12-21
  • 3 回答
  • 0 关注
  • 188 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信