NC sql信息打印控制台

通过继承并重写Log4jLoggerPlugin的log方法,实现对NC系统日志的自定义控制,特别针对SQL日志输出到控制台,便于开发调试。

首先追下代码,知道NC的日志是由Log4jLoggerPlugin执行,写一个子类继承重写log方法,然后将自己写的子类,配置在System.property里,在启动时所有日志就会使用你自己的类了,然偶挑出专门打印sql的日志进行控制台输出就行了。(当然,直接去查日志也是可以的,只是为了开发方便)
在这里插入图片描述

### NC65 控制台打印 SQL 语句的配置方法 在 NC65 中实现控制台打印 SQL 语句的功能,通常可以通过调整框架的日志级别或启用特定插件来完成。以下是详细的说明: #### 日志级别的调整 如果使用的是 MyBatis 或类似的 ORM 框架,在 NC65 的环境中可以修改日志配置文件(如 `log4j.properties` 或 `logback.xml`),设置对应的包名日志级别为 DEBUG 或 TRACE,从而让 SQL 语句能够被记录并显示在控制台上。 对于 MyBatis 来说,需要将以下内容加入到日志配置文件中: ```properties log4j.logger.org.mybatis=DEBUG log4j.logger.com.ibatis=DEBUG ``` 这会使得所有的 SQL 语句及其参数都被打印出来[^1]。 #### 数据库连接池的监控功能 部分数据库连接池也支持直接输出执行的 SQL控制台。例如 HikariCP 和 Druid 这样的连接池提供了内置的支持选项。如果是基于 Druid,则可以在初始化时通过如下方式开启 SQL 输出功能: ```java DataSource dataSource = DruidDataSourceFactory.createDataSource(properties); ((DruidDataSource)dataSource).setLogFilters(Collections.singletonList(new StatFilter())); ``` 此代码片段中的 `StatFilter` 能够捕获所有被执行过的 SQL 并将其写入日志流中[^3]。 #### 使用拦截器机制 另一种更灵活的方式是在应用层面上定义自定义拦截器类继承自 MyBatis 提供的基础接口 BaseInterceptor 。此类允许开发者截取每次查询前后的状态变化,并在此过程中附加额外处理逻辑比如打印完整的预编译命令字符串连同绑定变量一起展示给运维人员查看。 ```java @Intercepts({ @Signature(type = Executor.class, method = "update", args = { MappedStatement.class, Object.class }) }) public class SqlPrintInterceptor implements Interceptor { public Object intercept(Invocation invocation) throws Throwable { System.out.println(invocation.getArgs()[0]); // 假设第一个参数即为目标SQL表达式实例化对象 return invocation.proceed(); } } ``` 最后一步就是记得把这个新的组件注册进去以便生效[^2]。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值