Log.info(“name:{}”,name)打印不出来变量的值

log对象创建方式:

Log log = Log.getLog(IndexService.class);

日志打印方式:

log.info("name:{},phone:{},idcard:{}已存在!",name,phone,idcard);

控制台输出结果:

[INFO]-[Thread: XNIO-1 task-3]-[org.monkey.service.IndexService.install()]: name:{},phone:{},idcard:{}已存在!

评论区

JFinal

2020-09-23 16:02

用大扩号占位需要配置为 slf4j,或者 logback:
configConstant(Constants me) {
me.setToSlf4jLogFactory());
}

注意要添加其依赖

如果不配置的话,可以通过 %s 作为占位字符:
log.info("name:%s,phone:%s,idcard:%s已存在!",name,phone,idcard);

因为 jfinal 默认用的 log4j ,底层用的 String.format(...):
https://blog.csdn.net/anita9999/article/details/82346552

JF_John

2020-10-09 14:18

@JFinal 多谢波总,我已通过你的建议处理了问题~

JFinal

2020-10-09 15:25

@JF_John 使用 %s 要注意切换到 slf4j 时要改成 {}, 所以最好是早点决定一直用哪个日志框架,不用改了

fred

2020-10-21 17:09

@JFinal 能统一这个占位符,不然切换日志时,还要改代码

JFinal

2020-10-21 20:44

@fred 当时为了偷懒没做 {} 占位的功能,先将这个放到开发备忘里头

fred

2020-10-22 09:12

@JFinal 谢谢,最近想换个日志,所以才遇到

JFinal

2020-10-22 09:56

@fred 当前你可以用查找替换,将 '%s' 替换为 '{}'

热门反馈

扫码入社