MybatisStdOutImpl.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.pj.current.mybatis;
  2. import com.pj.current.config.SystemObject;
  3. import org.apache.ibatis.logging.Log;
  4. /**
  5. * 自定义mybatis日志层实现,优化mybatis日志输出,主要优化以下部分:
  6. * <p> 1、删除无用日志信息
  7. * <p> 2、SQL高亮显示
  8. *
  9. * @author kong
  10. */
  11. public class MybatisStdOutImpl implements Log {
  12. public MybatisStdOutImpl(String clazz) {
  13. // Do Nothing
  14. }
  15. @Override
  16. public boolean isDebugEnabled() {
  17. return true;
  18. }
  19. @Override
  20. public boolean isTraceEnabled() {
  21. return true;
  22. }
  23. @Override
  24. public void error(String s, Throwable e) {
  25. System.err.println(s);
  26. e.printStackTrace(System.err);
  27. }
  28. @Override
  29. public void error(String s) {
  30. System.err.println(s);
  31. }
  32. /**
  33. * MyBatis动作 打印
  34. * 执行Sql与参数 打印
  35. */
  36. @Override
  37. public void debug(String s) {
  38. // 以下日志,不再打印
  39. if (s.startsWith("Creating") || s.startsWith("SqlSession") || s.startsWith("Cache") || s.startsWith("JDBC") || s.startsWith("Closing")) {
  40. return;
  41. }
  42. // 如果是sql语句,则: 蓝色、加粗、下划线
  43. // 参考:https://blog.csdn.net/soinice/article/details/97052030
  44. if (SystemObject.config != null && SystemObject.config.getColorSql() && s.startsWith("==> Preparing")) {
  45. s = "\033[34;1;4m" + s + "\033[0m";
  46. // s = s.replaceAll("==> Preparing: ", "");
  47. // s = "==> Preparing: " + s;
  48. }
  49. }
  50. /**
  51. * Sql执行结果,打印
  52. */
  53. @Override
  54. public void trace(String s) {
  55. }
  56. @Override
  57. public void warn(String s) {
  58. }
  59. }