千家信息网

Jfinal中使用日志框架输出完整sql语句信息(mysql+oracle)

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,Jfinal中使用日志框架输出完整sql语句信息(mysql+oracle)1、引入Jar包。//必须引入的jar包log4j-1.2.17.jarlog4jdbc4-1.2.jarslf4j-api
千家信息网最后更新 2026年11月02日Jfinal中使用日志框架输出完整sql语句信息(mysql+oracle)

Jfinal中使用日志框架输出完整sql语句信息(mysql+oracle)

1、引入Jar包。

//必须引入的jar包

log4j-1.2.17.jar

log4jdbc4-1.2.jar

slf4j-api-1.7.5.jar

//二选一的jar包,如果你的项目中已经引入了其中任何一个,就不需要再引入另一个了。同时引入以上两个包会产生堆栈溢出问题,详情可参考这篇文档:

http://blog.csdn.net/kxcfzyk/article/details/38613861

slf4j-log4j12-1.7.5.jar

或者

log4j-over-slf4j-1.7.7.jar

2、修改数据库配置信息

-------------------------mysql-----------------------

jdbcUrl = jdbc:log4jdbc:mysql://127.0.0.1/mxtt?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull

user = root

password = root123

#devMode = true

#log4jdbc

driverClass=net.sf.log4jdbc.DriverSpy

-------------------------oracle----------------------

jdbcUrl = jdbc:log4jdbc:oracle:thin:@127.0.0.1:1521:ORC

user = scott

password = tiger

#devMode = true

#log4jdbc

driverClass=net.sf.log4jdbc.DriverSpy

3、修改jfinal核心配置类

-------------------------mysql----------------------

private static Prop p = PropKit.use("config.properties"); // 加载配置文件

public static DruidPlugincreateDruidPlugin() {

DruidPlugin dp =new DruidPlugin(p.get("jdbcUrl"), p.get("user"), p.get("password").trim());

dp.setDriverClass(p.get("driverClass"));

dp.addFilter(new StatFilter());

dp.addFilter(new Slf4jLogFilter());

WallFilter wall = new WallFilter();

wall.setDbType(JdbcUtils.MYSQL);

dp.addFilter(wall);

returndp;

}

public void configPlugin(Plugins me) {

// 配置C3p0数据库连接池插件

DruidPlugindruidPlugin = createDruidPlugin();

me.add(druidPlugin);

// 配置ActiveRecord插件

ActiveRecordPluginarp = new ActiveRecordPlugin(druidPlugin);

StringbaseSqlTemplatePath = PathKit.getWebRootPath()+"/WEB-INF/sql";

arp.setBaseSqlTemplatePath(baseSqlTemplatePath);

File[]files = new File(baseSqlTemplatePath).listFiles();

for(File f : files) {

if(f.isFile()&& f.getName().endsWith(".sql") ){

arp.addSqlTemplate(f.getName());

}

}

// if(p.getBoolean("devMode", false)) {

// arp.setShowSql(true);

// }

// 所有映射在 MappingKit 中自动化搞定

_MappingKit.mapping(arp);

me.add(arp);

}

-------------------------oracle----------------------

private static Prop p = PropKit.use("config.properties"); // 加载配置文件

public static DruidPlugincreateDruidPlugin() {

DruidPlugin dp =new DruidPlugin(p.get("jdbcUrl"), p.get("user"), p.get("password").trim());

dp.setDriverClass(p.get("driverClass"));

dp.setValidationQuery("select 1 from dual");

dp.addFilter(new StatFilter());

dp.addFilter(new Slf4jLogFilter());

WallFilter wall = new WallFilter();

wall.setDbType(JdbcUtils.ORACLE);

dp.addFilter(wall);

returndp;

}

public void configPlugin(Plugins me) {

// 配置Druid数据库连接池插件

DruidPlugindruidPlugin = createDruidPlugin();

me.add(druidPlugin);

// 配置ActiveRecord插件

ActiveRecordPluginarp = new ActiveRecordPlugin(druidPlugin);

StringbaseSqlTemplatePath = PathKit.getWebRootPath()+"/WEB-INF/sql";

arp.setBaseSqlTemplatePath(baseSqlTemplatePath);

File[]files = new File(baseSqlTemplatePath).listFiles();

for(File f : files) {

if(f.isFile()&& f.getName().endsWith(".sql") ){

arp.addSqlTemplate(f.getName());

}

}

// if(p.getBoolean("devMode", false)) {

// arp.setShowSql(true);

// }

//配置Oracle方言

arp.setDialect(new OracleDialect());

/*设置事务运行级别,Oracle数据库仅支持READCOMMITTED 和 SERIALIZABLE

TRANSACTION_NONE= 0; //JDBC驱动不支持事务

TRANSACTION_READ_UNCOMMITTED= 1; //允许脏读、不可重复读和幻读。

TRANSACTION_READ_COMMITTED= 2; //禁止脏读,但允许不可重复读和幻读。

TRANSACTION_REPEATABLE_READ= 4; //禁止脏读和不可重复读,单运行幻读。

TRANSACTION_SERIALIZABLE = 8; //禁止脏读、不可重复读和幻读。

*/

arp.setTransactionLevel(2);

//配置属性名(字段名)大小写不敏感容器工厂 为true字段名都小写

arp.setContainerFactory(new CaseInsensitiveContainerFactory(true));

me.add(arp);

// 权限系统相关表以外的所有配置在_MappingKit中通过_JFinalGenerator自动生成

_MappingKit.mapping(arp);

}

4、修改日志输出配置文件(log4j.properties)

# log4j.rootLogger=WARN, stdout, file

log4j.rootLogger=ERROR, stdout, file

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%n%-d{yyyy-MM-ddHH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n

# Output to the File

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender

log4j.appender.file.DatePattern='_'yyyy-MM-dd'.log'

log4j.appender.file.File=./mxtt.cc.log

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%n%-d{yyyy-MM-ddHH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n

#输出sql语句和执行时间

log4j.logger.jdbc.sqltiming=INFO,console

#仅输出sql语句

#log4j.logger.jdbc.sqlonly=DEBUG,console

#log4j.logger.jdbc.connection=INFO,console

#log4j.appender.console=org.apache.log4j.ConsoleAppender

#log4j.appender.console.layout=org.apache.log4j.PatternLayout

#log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss.SSS} %m%n%n


最后附上jar包的下载地址:http://pan.baidu.com/s/1pLyl0Wb

http://www.mxtt.cc http://www.51fenxiang.xyz

配置 输出 插件 数据 数据库 语句 文件 信息 日志 事务 字段 支持 运行 框架 两个 同时 名都 地址 堆栈 大小 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 天津市摩尔互联网科技 互联网金融监管科技数据 科技与互联网 互联网是不是新科技 北京互联网科技有限公司 科技互联网公司logo 互联网高科技企业 重庆科技学院互联网 新华互联网科技2019 崇明区互联网教育科技诚信经营 宜昌元轩互联网科技有限公司 米聚互联网科技南京有限公司排面 互联网科技扶贫时间 亳州好赞互联网科技有限公司 互联网金融科技展 新氧科技和美国互联网有关系吗 广州梦谷互联网科技有限公司领导 中国互联网公司的科技投入 北京天晋互联网科技有限公司 唐山双旺合互联网科技产业园 互联网高科技 科技企业和互联网企业 互联网络科技有限公司 滨湖区互联网智能科技产品供应 湖南一路畅行互联网科技 辽宁互联网新科技 深圳育鹏互联网科技有限公司招聘 宁波跨境商互联网科技有限公司 河南商务圈互联网科技有限公司 互联网科技自媒体灵感
0