如何在Java/Android项目中开启OrmLite v6.1的SQL日志
在Java/Android项目中开启OrmLite 6.1的SQL日志
全局快速开启方法
直接在应用初始化阶段(比如Android的Application.onCreate()或者Java项目的启动入口)添加以下代码,通过系统属性设置OrmLite的全局日志级别:
// 开启最详细的SQL日志(包括语句、参数、执行耗时) System.setProperty("com.j256.ormlite.logger.level", "TRACE");
如果觉得TRACE级别输出内容过多,可以换成DEBUG级别,只输出核心SQL执行信息。
Android项目适配Logcat优化
如果是Android项目,OrmLite默认会适配系统Log,但可以通过自定义日志后端更精准控制输出:
- 实现自定义
LogBackend和工厂类:
import com.j256.ormlite.logger.LogBackend; import com.j256.ormlite.logger.LogBackendFactory; import com.j256.ormlite.logger.LogLevel; import android.util.Log; public class AndroidOrmLiteLog implements LogBackend { private final String tag; public AndroidOrmLiteLog(String tag) { this.tag = tag; } @Override public boolean isLevelEnabled(LogLevel level) { // 允许所有级别日志输出,可根据需求调整 return true; } @Override public void log(LogLevel level, String msg, Throwable throwable) { switch (level) { case TRACE: Log.v(tag, msg, throwable); break; case DEBUG: Log.d(tag, msg, throwable); break; case INFO: Log.i(tag, msg, throwable); break; case WARNING: Log.w(tag, msg, throwable); break; case ERROR: Log.e(tag, msg, throwable); break; case FATAL: Log.wtf(tag, msg, throwable); break; default: Log.d(tag, msg, throwable); } } public static class Factory implements LogBackendFactory { @Override public LogBackend createLogBackend(String classLabel) { // 自定义Logcat标签,方便过滤 return new AndroidOrmLiteLog("OrmLite-SQL"); } } }
- 在应用初始化时设置这个日志工厂:
LogBackendFactory.setLogBackendFactory(new AndroidOrmLiteLog.Factory());
之后就能在Logcat里通过OrmLite-SQL标签过滤所有OrmLite的SQL日志。
处理第三方日志框架冲突
如果项目中引入了SLF4J、Logback等日志框架,需要在对应配置中开启OrmLite的日志级别:
- 比如Logback的
logback.xml中添加:
<logger name="com.j256.ormlite" level="TRACE" />
- SLF4J结合Log4j的话,在
log4j.properties中添加:
log4j.logger.com.j256.ormlite=TRACE
内容的提问来源于stack exchange,提问作者Rich Morey
相关产品推荐
相关产品推荐

