备忘录三:Spring Boot+Druid+log4j2
一:pom.xml配置:去掉Spring boot 默认的spring-boot-starter-logging,引入spring-boot-starter-log4j2
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency>
二:应用配置application.yaml
#logginglogging:config:classpath:log4j2.xml
三:log42j.xml配置
<?xmlversion="1.0"encoding="UTF-8"?><Configurationstatus="OFF"><Properties><propertyname="LOG_HOME">D:/logs</property></Properties><Appenders><Consolename="console"target="SYSTEM_OUT"immediateFlush="true"><ThresholdFilterlevel="debug"onMatch="ACCEPT"onMismatch="DENY"/><PatternLayoutpattern="[%-5p][%d{yyyy-MM-ddHH:mm:ssSSS}]%c-%m%n"/></Console><RollingRandomAccessFilename="infoLog"immediateFlush="true"fileName="${LOG_HOME}/infoService.log"filePattern="${LOG_HOME}/infoService.log.%d{yyyy-MM-dd}.log.gz"><PatternLayout><pattern>[%-5p][%d{yyyy-MM-ddHH:mm:ssSSS}]%c-%m%n</pattern></PatternLayout><Policies><TimeBasedTriggeringPolicyinterval="1"modulate="true"/></Policies><DefaultRolloverStrategy><DeletebasePath="${LOG_HOM}"maxDepth="1"><IfFileNameglob="infoService*.gz"/><IfLastModifiedage="7d"/></Delete></DefaultRolloverStrategy><ThresholdFilterlevel="info"onMatch="ACCEPT"onMismatch="DENY"/></RollingRandomAccessFile><RollingRandomAccessFilename="errorLog"immediateFlush="true"fileName="${LOG_HOME}/errorService.log"filePattern="${LOG_HOME}/errorService.log.%d{yyyy-MM-dd}.log.gz"><PatternLayout><pattern>[%-5p][%d{yyyy-MM-ddHH:mm:ssSSS}]%c-%m%n</pattern></PatternLayout><Policies><TimeBasedTriggeringPolicyinterval="1"modulate="true"/></Policies><DefaultRolloverStrategy><DeletebasePath="${LOG_HOM}"maxDepth="1"><IfFileNameglob="errorService*.gz"/><IfLastModifiedage="7d"/></Delete></DefaultRolloverStrategy><ThresholdFilterlevel="error"onMatch="ACCEPT"onMismatch="DENY"/></RollingRandomAccessFile><RollingRandomAccessFilename="fatalLog"immediateFlush="true"fileName="${LOG_HOME}/fatalService.log"filePattern="${LOG_HOME}/fatalService.log.%d{yyyy-MM-dd}.log.gz"><PatternLayout><pattern>[%-5p][%d{yyyy-MM-ddHH:mm:ssSSS}]%c-%m%n</pattern></PatternLayout><Policies><TimeBasedTriggeringPolicyinterval="1"modulate="true"/></Policies><DefaultRolloverStrategy><DeletebasePath="${LOG_HOM}"maxDepth="1"><IfFileNameglob="fatalService*.gz"/><IfLastModifiedage="7d"/></Delete></DefaultRolloverStrategy><ThresholdFilterlevel="fatal"onMatch="ACCEPT"onMismatch="DENY"/></RollingRandomAccessFile><RollingRandomAccessFilename="druidSqlLog"immediateFlush="true"fileName="${LOG_HOME}/druidSql.log"filePattern="${LOG_HOME}/druidSql.log.%d{yyyy-MM-dd}.log.gz"><PatternLayout><pattern>[%-5p][%d{yyyy-MM-ddHH:mm:ssSSS}]%c-%m%n</pattern></PatternLayout><Policies><TimeBasedTriggeringPolicyinterval="1"modulate="true"/></Policies><DefaultRolloverStrategy><DeletebasePath="${LOG_HOM}"maxDepth="1"><IfFileNameglob="druidSql*.gz"/><IfLastModifiedage="7d"/></Delete></DefaultRolloverStrategy></RollingRandomAccessFile></Appenders><Loggers><!--根logger的设置--><rootlevel="info"><appender-refref="console"/><appender-refref="infoLog"/><appender-refref="errorLog"/><appender-refref="fatalLog"/></root><loggername="druid.sql.Statement"level="debug"additivity="false"><appender-refref="druidSqlLog"/></logger><loggername="druid.sql.ResultSet"level="debug"additivity="false"><appender-refref="druidSqlLog"/></logger></Loggers></Configuration>
四:Druid配置
#mysql,druidspring:datasource:type:com.alibaba.druid.pool.DruidDataSourcedriverClassName:com.mysql.jdbc.Driverurl:jdbc:mysql://localhost:3306/upin_charge?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8username:username:password:password:druid:#连接池的配置信息initial-size:10max-active:100min-idle:10max-wait:60000#打开PSCache,并且指定每个连接上PSCache的大小pool-prepared-statements:truemax-pool-prepared-statement-per-connection-size:20#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒time-between-eviction-runs-millis:60000#配置一个连接池中最小生存的时间,单位是毫秒min-evictable-idle-time-millis:300000validation-query:SELECT1FROMDUALtest-while-idle:truetest-on-borrow:falsetest-on-return:false#配置DruidStatViewServletstat-view-servlet:enabled:trueurl-pattern:/druid/*#login-username:admin#login-password:admin##配置监控统计拦截的filters,去掉后,监控界面sql无法统计,'wall'用于防火墙filters:stat,wall,log4j2filter:stat:log-slow-sql:trueslow-sql-millis:1000merge-sql:truewall:config:multi-statement-allow:truelog4j2:enabled:trueresult-set-log-enabled:truestatement-executable-sql-log-enable:truestatement-create-after-log-enabled:falsestatement-close-after-log-enabled:falseresult-set-open-after-log-enabled:falseresult-set-close-after-log-enabled:false
五:日志文件查看
[DEBUG][2019-08-0616:58:20570]druid.sql.Statement-{conn-10010,pstmt-20000}created.SELECTpush_id,uuid,user_id,user_name,msg_type,msg_object,msg_title,msg_content,status,read_status,read_date,receive_date,receive_user_id,create_dateFROMupin_msg.msg_push_infoWHEREstatus='01'[DEBUG][2019-08-0616:58:20577]druid.sql.Statement-{conn-10010,pstmt-20000}Parameters:[][DEBUG][2019-08-0616:58:20577]druid.sql.Statement-{conn-10010,pstmt-20000}Types:[][DEBUG][2019-08-0616:58:20595]druid.sql.Statement-{conn-10010,pstmt-20000}executed.SELECTpush_id,uuid,user_id,user_name,msg_type,msg_object,msg_title,msg_content,status,read_status,read_date,receive_date,receive_user_id,create_dateFROMupin_msg.msg_push_infoWHEREstatus='01'[DEBUG][2019-08-0616:58:20595]druid.sql.Statement-{conn-10010,pstmt-20000}executed.19.4173millis.SELECTpush_id,uuid,user_id,user_name,msg_type,msg_object,msg_title,msg_content,status,read_status,read_date,receive_date,receive_user_id,create_dateFROMupin_msg.msg_push_infoWHEREstatus='01'[DEBUG][2019-08-0616:58:20601]druid.sql.ResultSet-{conn-10010,pstmt-20000,rs-50000}Result:[2,null,1,test,01,test,null,test,01,00,null,null,null,2019-08-0513:41:12.0][DEBUG][2019-08-0616:58:20603]druid.sql.ResultSet-{conn-10010,pstmt-20000,rs-50000}Result:[3,null,1,test,01,test,null,test,01,00,null,null,null,2019-08-0513:52:05.0][DEBUG][2019-08-0616:58:20603]druid.sql.ResultSet-{conn-10010,pstmt-20000,rs-50000}Result:[4,null,1,test,01,test,null,test,01,00,null,null,null,2019-08-0513:53:50.0][DEBUG][2019-08-0616:58:20603]druid.sql.ResultSet-{conn-10010,pstmt-20000,rs-50000}Result:[5,null,1,test,01,test,null,test,01,00,null,null,null,2019-08-0610:41:10.0][DEBUG][2019-08-0616:58:20604]druid.sql.ResultSet-{conn-10010,pstmt-20000,rs-50000}Result:[6,null,1,test,01,test,null,test,01,00,null,null,null,2019-08-0613:49:58.0][DEBUG][2019-08-0616:58:20605]druid.sql.Statement-{conn-10010,pstmt-20000}clearParameters.[DEBUG][2019-08-0616:58:20608]druid.sql.Statement-{conn-10010,pstmt-20000}Parameters:[][DEBUG][2019-08-0616:58:20608]druid.sql.Statement-{conn-10010,pstmt-20000}Types:[]
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。