如何logback打印mybaits实际参数
时间: 2023-06-11 15:05:26 浏览: 112
您可以通过设置logback的logger来打印MyBatis实际参数。首先,在logback配置文件中添加以下语句,以启用MyBatis的SQL语句输出:
<logger name="org.mybatis" level="TRACE"/>
然后,在您的MyBatis映射器或DAO层中,您可以使用以下代码来输出实际参数:
// 获取SQL会话
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
// 获取Mapper接口
MyMapper myMapper = sqlSession.getMapper(MyMapper.class);
// 执行查询操作
myMapper.queryUser("test", 20);
// 获取最新日志记录
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
List<ch.qos.logback.classic.Logger> loggerList = lc.getLoggerList();
ch.qos.logback.classic.Logger logger = loggerList.get(loggerList.size() - 1);
// 遍历日志记录并输出
List<ILoggingEvent> events = logger.getAppender("STDOUT").getEvents();
for (ILoggingEvent event : events) {
System.out.println(event.getMessage());
}
} finally {
sqlSession.close();
}
此代码将执行一个名为“queryUser”的SELECT语句,并将“test”和20作为参数传递。该代码还将获取最新的日志记录,然后遍历并输出它们。在您的控制台上,您应该会看到类似以下内容的输出:
TRACE o.m.executor.BaseExecutor - Preparing: SELECT * FROM user WHERE name = ? AND age = ?
TRACE o.m.executor.BaseExecutor - Parameters: test(Integer), 20(Integer)
这表明logback已成功地打印了MyBatis实际参数。
阅读全文