猿问

无法解析 DuplicateKeyException 上的符号“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);

    }

}

将鼠标悬停在记录器上会显示“无法解析符号‘记录器’感谢您的帮助。


慕码人8056858
浏览 189回答 3
3回答

慕姐8265434

推荐使用 sl4jimport 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 nameprivate final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());在依赖项中,包括 sl4j 实现的绑定(可以是 log4j)。可以参考这里:使用 slf4j 进行日志记录

慕侠2389804

记录器需要实例化或更好地注入。看来你没有那样做。当您使用某种日志记录框架(如 log4j)时,初始化将如下所示:static Logger logger = Logger.getLogger(MainApp.class.getName());当你向我们展示整个班级时,我们可以看到更多细节并且可以更好地猜测。可以在此处找到 log4j 和 spring 的教程。

精慕HU

事实上,我没有妥善管理我的进口:我补充说:    private final Log logger = LogFactory.getLog(TicketDaoImpl.class);从org.apache.commons.logging.Log;愚蠢的缺乏关注。我也在看 Baeldung 上 log4j/sl4j 的文档。谢谢^^
随时随地看视频慕课网APP

相关分类

Java
我要回答