springboot(2.2.4)配置druid的log4j2日志监控
druid连接池标榜自己是唯一有监控的连接池,性能最好的连接池。其中一项是强大的日志功能,方便程序员定位问题,配置log4j2步骤如下:
1.去除springboot默认的logback日志框架,请参看我的另一篇博客https://blog.csdn.net/weixin_39370859/article/details/105039787
2.配置数据源(我用的是配置文件的方式,也可以代码里注解引入的方式),在resource下建相应的目录和spring的bean文件,比如我的
再在启动类里引入
接下来是druidBeans.xml的配置
<!--name属性,配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区分开来。如果没有配置,将会生成一个名字,格式是:"DataSource-" + System.identityHashCode(this). 另外配置此属性至少在1.0.5版本中是不起作用的,强行设置name会出错--><bean id="dataSource" name="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource"init-method="init"destroy-method="close"><!--用户名、密码,url等其他 property的配置不写出来了--><!--类型是List<com.alibaba.druid.filter.Filter>,如果同时配置了filters和proxyFilters,是组合关系,并非替换关系--><property name="proxyFilters"><list><ref bean="log-filter"/></list></property></bean><bean id="log-filter" class="com.alibaba.druid.filter.logging.Log4j2Filter"><!--所有DataSource相关的日志--><!--<property name="dataSourceLogEnabled" value="true"/>--><!--所有连接相关的日志--><!--<property name="connectionLogEnabled" value="true"/>--><!--所有连接上发生异常的日志--><!--<property name="connectionLogErrorEnabled" value="true"/>--><!--所有Statement相关的日志--><!--<property name="statementLogEnabled" value="true"/>--><!--所有Statement发生异常的日志--><!--<property name="statementLogErrorEnabled" value="true"/>--><!--所有resultSet的日志--><!--<property name="resultSetLogEnabled" value="true"/>--><!--resultSet发生异常的日志--><!--<property name="resultSetLogErrorEnabled" value="true"/>--><!--数据库连接之前的日志--><!--<property name="connectionConnectBeforeLogEnabled" value="true"/>--><!--数据库连接后的日志--><!--<property name="connectionConnectAfterLogEnabled" value="true"/>--><!--提交之后的额日志--><!--<property name="connectionCommitAfterLogEnabled" value="true"/>--><!--连接回滚之后的日志--><!--<property name="connectionRollbackAfterLogEnabled" value="true"/>--><!--连接关闭之后的日志--><!--<property name="connectionCloseAfterLogEnabled" value="true"/>--><!--Statement创建之后的日志--><!--<property name="statementCreateAfterLogEnabled" value="true"/>--><!--StatementPrepared创建之后的日志--><!--<property name="statementPrepareAfterLogEnabled" value="true"/>--><!--StatementPrepare调用之后的日志--><!--<property name="statementPrepareCallAfterLogEnabled" value="true"/>--><!--StatementPrepare执行之后的日志--><!--<property name="statementExecuteAfterLogEnabled" value="true"/>--><!--Statement执行查询之后的日志--><!--<property name="statementExecuteQueryAfterLogEnabled" value="true"/>--><!--Statement执行更新之后的日志--><!--<property name="statementExecuteUpdateAfterLogEnabled" value="true"/>--><!--Statement执行批量之后的日志--><!--<property name="statementExecuteBatchAfterLogEnabled" value="true"/>--><!--Statement执行关闭之后的日志--><!--<property name="statementCloseAfterLogEnabled" value="true"/>--><!--参数日志--><!--<property name="statementParameterSetLogEnabled" value="true"/>--><!--result相关的日志--><!--<property name="resultSetNextAfterLogEnabled" value="true"/>--><!--<property name="resultSetOpenAfterLogEnabled" value="true"/>--><!--<property name="resultSetCloseAfterLogEnabled" value="true"/>--></bean>log4j2监控可以以
<property name="filters" value="log4j2"/>的方式引入,这个filters是过滤器列表,value里以逗号隔开,这里的log4j2是一个别名,是默认的,阿里的文档里有说明,filters的引入方法和proxyFilters的引入是组合关系,两者引入同一种filter的情况没测过,不是同一种filter的就两种都有效,用proxyFilters的好处是可以自己定制里边的属性。配置到这里就完事了。
3.效果
监控日志输出在你配置的log4j2.xml里的文件类型appender的路径里,没有改动的话在项目根路径下回生成logs文件夹,里头应包含文件列表:
其中druid-sql.log里头根据配置的属性可以记录连接开始时间、statement时间、sql参数、类型、sql语句、执行用时、statement销毁等
总结
以上是生活随笔为你收集整理的springboot(2.2.4)配置druid的log4j2日志监控的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: springboot(2.2.4)的默认
- 下一篇: sprinigboot(2.2.4)+m