1. 官网地址
  2. gitHub地址
  3. 在项目的pom.xml中添加依赖
  4. 修改项目数据库连接地址Connection URL
  5. jdbc:mysql://host/db 修改为 jdbc:p6spy:mysql://host/db
  6. 修改数据库 driver-class-name
  7. driver-class-name: com.mysql.cj.jdbc.Driver 修改为 com.p6spy.engine.spy.P6SpyDriver
  8. 这边解释下第7项,因为p6spy会有配置文件,配置文件中需要您配置对应项目的driver-class-name
  9. 在classpath 下添加spy.properties配置文件,springboot项目会自动扫描
  10. #################################################################
    # P6Spy Options File                                            #
    # See documentation for detailed instructions                   #
    # http://p6spy.github.io/p6spy/2.0/configandusage.html          #
    ##################################################################################################################################
    # MODULES                                                       #
    #                                                               #
    # Module list adapts the modular functionality of P6Spy.        #
    # Only modules listed are active.                               #
    # (default is com.p6spy.engine.logging.P6LogFactory and         #
    # com.p6spy.engine.spy.P6SpyFactory)                            #
    # Please note that the core module (P6SpyFactory) can't be      #
    # deactivated.                                                  #
    # Unlike the other properties, activation of the changes on     #
    # this one requires reload.                                     #
    #################################################################
    #modulelist=com.p6spy.engine.spy.P6SpyFactory,com.p6spy.engine.logging.P6LogFactory,com.p6spy.engine.outage.P6OutageFactory################################################################
    # CORE (P6SPY) PROPERTIES                                      #
    ################################################################# A comma separated list of JDBC drivers to load and register.
    # (default is empty)
    #
    # Note: This is normally only needed when using P6Spy in an
    # application server environment with a JNDI data source or when
    # using a JDBC driver that does not implement the JDBC 4.0 API
    # (specifically automatic registration).#driverlist=
    #####配置数据库驱动,根据自己的数据库选择
    driverlist=com.mysql.jdbc.Driver
    # for flushing per statement
    # (default is false)
    #autoflush=false# sets the date format using Java's SimpleDateFormat routine.
    # In case property is not set, milliseconds since 1.1.1970 (unix time) is used (default is empty)
    #dateformat=# prints a stack trace for every statement logged
    #stacktrace=false
    # if stacktrace=true, specifies the stack trace to print
    #stacktraceclass=# determines if property file should be reloaded
    # Please note: reload means forgetting all the previously set
    # settings (even those set during runtime - via JMX)
    # and starting with the clean table
    # (default is false)
    #reloadproperties=false# determines how often should be reloaded in seconds
    # (default is 60)
    #reloadpropertiesinterval=60# specifies the appender to use for logging
    # Please note: reload means forgetting all the previously set
    # settings (even those set during runtime - via JMX)
    # and starting with the clean table
    # (only the properties read from the configuration file)
    # (default is com.p6spy.engine.spy.appender.FileLogger)
    #appender=com.p6spy.engine.spy.appender.Slf4JLogger
    #appender=com.p6spy.engine.spy.appender.StdoutLogger
    #appender=com.p6spy.engine.spy.appender.FileLogger
    ###选择sql日志输出的问题 slf4jLogger输出到控制台,fileLogger输出到文件中 appender=com.p6spy.engine.spy.appender.Slf4JLogger# name of logfile to use, note Windows users should make sure to use forward slashes in their pathname (e:/test/spy.log)
    # (used for com.p6spy.engine.spy.appender.FileLogger only)
    # (default is spy.log)
    #logfile=spy.log
    ###如果选择输出到文件中自定义文件的输出路径
    logfile = /data/www/logs/spy.log
    # append to the p6spy log file. if this is set to false the
    # log file is truncated every time. (file logger only)
    # (default is true)
    #append=true# class to use for formatting log messages (default is: com.p6spy.engine.spy.appender.SingleLineFormat)
    #logMessageFormat=com.p6spy.engine.spy.appender.SingleLineFormat# Custom log message format used ONLY IF logMessageFormat is set to com.p6spy.engine.spy.appender.CustomLineFormat
    # default is %(currentTime)|%(executionTime)|%(category)|connection%(connectionId)|%(sqlSingleLine)
    # Available placeholders are:
    #   %(connectionId)            the id of the connection
    #   %(currentTime)             the current time expressing in milliseconds
    #   %(executionTime)           the time in milliseconds that the operation took to complete
    #   %(category)                the category of the operation
    #   %(effectiveSql)            the SQL statement as submitted to the driver
    #   %(effectiveSqlSingleLine)  the SQL statement as submitted to the driver, with all new lines removed
    #   %(sql)                     the SQL statement with all bind variables replaced with actual values
    #   %(sqlSingleLine)           the SQL statement with all bind variables replaced with actual values, with all new lines removed
    #customLogMessageFormat=%(currentTime)|%(executionTime)|%(category)|connection%(connectionId)|%(sqlSingleLine)# format that is used for logging of the java.util.Date implementations (has to be compatible with java.text.SimpleDateFormat)
    # (default is yyyy-MM-dd'T'HH:mm:ss.SSSZ)
    #databaseDialectDateFormat=yyyy-MM-dd'T'HH:mm:ss.SSSZ# format that is used for logging of the java.sql.Timestamp implementations (has to be compatible with java.text.SimpleDateFormat)
    # (default is yyyy-MM-dd'T'HH:mm:ss.SSSZ)
    #databaseDialectTimestampFormat=yyyy-MM-dd'T'HH:mm:ss.SSSZ# format that is used for logging booleans, possible values: boolean, numeric
    # (default is boolean)
    #databaseDialectBooleanFormat=boolean# whether to expose options via JMX or not
    # (default is true)
    #jmx=true# if exposing options via jmx (see option: jmx), what should be the prefix used?
    # jmx naming pattern constructed is: com.p6spy(.<jmxPrefix>)?:name=<optionsClassName>
    # please note, if there is already such a name in use it would be unregistered first (the last registered wins)
    # (default is none)
    #jmxPrefix=# if set to true, the execution time will be measured in nanoseconds as opposed to milliseconds
    # (default is false)
    #useNanoTime=false#################################################################
    # DataSource replacement                                        #
    #                                                               #
    # Replace the real DataSource class in your application server  #
    # configuration with the name com.p6spy.engine.spy.P6DataSource #
    # (that provides also connection pooling and xa support).       #
    # then add the JNDI name and class name of the real             #
    # DataSource here                                               #
    #                                                               #
    # Values set in this item cannot be reloaded using the          #
    # reloadproperties variable. Once it is loaded, it remains      #
    # in memory until the application is restarted.                 #
    #                                                               #
    #################################################################
    #realdatasource=/RealMySqlDS
    #realdatasourceclass=com.mysql.jdbc.jdbc2.optional.MysqlDataSource#################################################################
    # DataSource properties                                         #
    #                                                               #
    # If you are using the DataSource support to intercept calls    #
    # to a DataSource that requires properties for proper setup,    #
    # define those properties here. Use name value pairs, separate  #
    # the name and value with a semicolon, and separate the         #
    # pairs with commas.                                            #
    #                                                               #
    # The example shown here is for mysql                           #
    #                                                               #
    #################################################################
    #realdatasourceproperties=port;3306,serverName;myhost,databaseName;jbossdb,foo;bar#################################################################
    # JNDI DataSource lookup                                        #
    #                                                               #
    # If you are using the DataSource support outside of an app     #
    # server, you will probably need to define the JNDI Context     #
    # environment.                                                  #
    #                                                               #
    # If the P6Spy code will be executing inside an app server then #
    # do not use these properties, and the DataSource lookup will   #
    # use the naming context defined by the app server.             #
    #                                                               #
    # The two standard elements of the naming environment are       #
    # jndicontextfactory and jndicontextproviderurl. If you need    #
    # additional elements, use the jndicontextcustom property.      #
    # You can define multiple properties in jndicontextcustom,      #
    # in name value pairs. Separate the name and value with a       #
    # semicolon, and separate the pairs with commas.                #
    #                                                               #
    # The example shown here is for a standalone program running on #
    # a machine that is also running JBoss, so the JNDI context     #
    # is configured for JBoss (3.0.4).                              #
    #                                                               #
    # (by default all these are empty)                              #
    #################################################################
    #jndicontextfactory=org.jnp.interfaces.NamingContextFactory
    #jndicontextproviderurl=localhost:1099
    #jndicontextcustom=java.naming.factory.url.pkgs;org.jboss.naming:org.jnp.interfaces#jndicontextfactory=com.ibm.websphere.naming.WsnInitialContextFactory
    #jndicontextproviderurl=iiop://localhost:900################################################################
    # P6 LOGGING SPECIFIC PROPERTIES                               #
    ################################################################# filter what is logged
    # please note this is a precondition for usage of: include/exclude/sqlexpression
    # (default is false)
    #filter=false# comma separated list of strings to include
    # please note that special characters escaping (used in java) has to be done for the provided regular expression
    # (default is empty)
    #include=
    # comma separated list of strings to exclude
    # (default is empty)
    #exclude=# sql expression to evaluate if using regex
    # please note that special characters escaping (used in java) has to be done for the provided regular expression
    # (default is empty)
    #sqlexpression=#list of categories to exclude: error, info, batch, debug, statement,
    #commit, rollback, result and resultset are valid values
    # (default is info,debug,result,resultset,batch)
    #excludecategories=info,debug,result,resultset,batch#whether the binary values (passed to DB or retrieved ones) should be logged with placeholder: [binary] or not.
    # (default is false)
    #excludebinary=false# Execution threshold applies to the standard logging of P6Spy.
    # While the standard logging logs out every statement
    # regardless of its execution time, this feature puts a time
    # condition on that logging. Only statements that have taken
    # longer than the time specified (in milliseconds) will be
    # logged. This way it is possible to see only statements that
    # have exceeded some high water mark.
    # This time is reloadable.
    #
    # executionThreshold=integer time (milliseconds)
    # (default is 0)
    #executionThreshold=################################################################
    # P6 OUTAGE SPECIFIC PROPERTIES                                #
    ################################################################
    # Outage Detection
    #
    # This feature detects long-running statements that may be indicative of
    # a database outage problem. If this feature is turned on, it will log any
    # statement that surpasses the configurable time boundary during its execution.
    # When this feature is enabled, no other statements are logged except the long
    # running statements. The interval property is the boundary time set in seconds.
    # For example, if this is set to 2, then any statement requiring at least 2
    # seconds will be logged. Note that the same statement will continue to be logged
    # for as long as it executes. So if the interval is set to 2, and the query takes
    # 11 seconds, it will be logged 5 times (at the 2, 4, 6, 8, 10 second intervals).
    #
    # outagedetection=true|false
    # outagedetectioninterval=integer time (seconds)
    #
    # (default is false)
    #outagedetection=false
    # (default is 60)
    #outagedetectioninterval=30

p6spy 非常典型 启用SQL日志相关推荐

  1. mysql的事务隔离级别与锁的关系、sql日志、Spring事务的特性

    文章目录 数据库事务介绍 什么是事务的隔离级别? 脏读幻读不可重复读的示例? mysql默认的隔离级别 Mysql锁有哪些 for update 什么是间隙锁?(Next-Key) mysql的日志 ...

  2. 如何有效地记录 Java SQL 日志(转)

    在常规项目的开发中可能最容易出问题的地方就在于对数据库的处理了,在大部分的环境下,我们对数据库的操作都是使用流行的框架,比如 Hibernate . MyBatis 等.由于各种原因,我们有时会想知道 ...

  3. mybatis结合log4j打印SQL日志

    mybatis结合log4j打印SQL日志 1.Maven引用jar包 默认的mybatis不能打印出SQL日志,不便于查看调试,需要结合log4jdbc-log4j2就可以完整的输入SQL的调试信息 ...

  4. 如何启用SQL Server 2008的FILESTREAM特性

    如何启用SQL Server 2008的FILESTREAM特性 今天安装SQL Server 2008的时候没有注意,忘记了启用FILESTREAM特性,因为默认情况下FILESTREAM是禁用的. ...

  5. mysql查看和启用二进制日志

    1.查看是否启用了日志 mysql>show variables like 'log_bin'; VALUE值为OFF为关闭状态 2.编辑my.cnf文件 vim /etc/my.cnf 在[m ...

  6. 查看mysql日志大小,SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace)

    SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace) DBA 日常管理工作中,很重要一项工作就是监视数据库文件大小,及日志文件大小.如果你管理数据库的有很多的 ...

  7. 天堂2启动mysql就没了_启用二进制日志文件进行mysql数据恢复

    启用二进制日志文件进行mysql数据恢复 查看文件/etc/my.cnf中[mysqld]配置块的是否配置log-bin 项,用来记录数据库更改的日志, 然后设置要需要写入日志的数据库或者不要写入日志 ...

  8. mysql慢日志优化_Mysql优化-慢sql日志

    一.开启慢sql日志捕获慢sql 1.查询mysql是否开启慢sql捕获:show variables like '%slow_query_log%'; 默认为OFF,开启:set global sl ...

  9. NET问答: 如何记录 EntityFramework 中的所有 SQL 日志 ?

    咨询区 PC.: 我正在 MVC5 项目中使用 EF 6.0,为了方便调试和获取性能指标,我想记录 EF6 中的所有 sql  日志. 在 Java/Hibernate 中,我只需要设置 hibern ...

  10. EF Core3.0+ 通过拦截器实现读写分离与SQL日志记录

    前言 本文主要是讲解EF Core3.0+ 通过拦截器实现读写分离与SQL日志记录 注意拦截器只有EF Core3.0+ 支持,2.1请考虑上下文工厂的形式实现. 说点题外话.. 一晃又大半年没更新技 ...

最新文章

  1. Cannot add or update a child row: a foreign key constraint fails
  2. python实现pdf转word详解_手把手|20行Python代码教你批量将PDF文件转为Word格式(包教包会)...
  3. 怎么运行verilog语言_(六) Verilog入门之有限状态机
  4. 牛客题霸 [ 排序] C++题解/答案
  5. 信息学奥赛一本通(1410:最大质因子序列)
  6. CentOS各个版本镜像下载地址
  7. 操作系统:进程间的相互作用(多线程基础)
  8. Dell做RAID配置图文全教程
  9. layer 退 回 点击变灰色
  10. asp.net 为FCKeditor开发代码高亮插件实现代码
  11. Maven默认的生命周期
  12. java图片叠加_[原创]JAVA中图片上叠加文字的方法
  13. 会计准则中借方与贷方如何理解分析
  14. python PIL库对图片按比例进行分割
  15. 按钮如何控制tab页面跳转
  16. 波士顿房价预测(回归)
  17. oracle经典习题(一)
  18. CDbCriteria CArrayDataProvider zii.widgets.grid (1)
  19. 二叉树的先序遍历(C++)
  20. JavaWeb学习笔记(JavaScript)

热门文章

  1. oracle查询sql对应用户名,Oracle EBS-SQL (SYS-21):sys_用户名与人员对应关系查询.sql
  2. 平面设计和包装设计的区别关系是什么
  3. 电脑键盘部分按键失灵_方法 | 键盘按键部分失灵,怎么办?
  4. dna计算机 论文,科学网—阿德勒曼DNA计算机(科普) - 沈海军的博文
  5. matlab绘制二元函数,matlab绘制二元函数z=x∧2+y∧2,y=0,y=x∧2,z=0的图像
  6. 常见的web网站攻击类型
  7. MongoDB的局域网连接问题
  8. C# 使用ZXing.net生成一维码(带数字与不带数字)、二维码(带logo与不带logo)
  9. 十月美剧精听总结 - 权力的游戏「Game of Throne」 黑袍纠察队「The boys」 老无所依「No Country for the old men」
  10. 模拟登陆广工统一认证系统