一:pom.xml配置:去掉Spring boot 默認(rèn)的spring-boot-starter-logging,引入spring-boot-starter-log4j2
創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站與策劃設(shè)計(jì),山海關(guān)網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:山海關(guān)等地區(qū)。山海關(guān)做網(wǎng)站價(jià)格咨詢:18980820575
<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>
二:應(yīng)用配置application.yaml
# logging logging: config: classpath:log4j2.xml
三:log42j.xml配置
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="OFF"> <Properties> <property name="LOG_HOME">D:/logs</property> </Properties> <Appenders> <Console name="console" target="SYSTEM_OUT" immediateFlush="true"> <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY" /> <PatternLayout pattern="[%-5p] [%d{yyyy-MM-dd HH:mm:ss SSS}] %c - %m%n" /> </Console> <RollingRandomAccessFile name="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-dd HH:mm:ss SSS}] %c - %m%n</pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> </Policies> <DefaultRolloverStrategy> <Delete basePath="${LOG_HOM}" maxDepth="1"> <IfFileName glob="infoService*.gz" /> <IfLastModified age="7d" /> </Delete> </DefaultRolloverStrategy> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" /> </RollingRandomAccessFile> <RollingRandomAccessFile name="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-dd HH:mm:ss SSS}] %c - %m%n</pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> </Policies> <DefaultRolloverStrategy> <Delete basePath="${LOG_HOM}" maxDepth="1"> <IfFileName glob="errorService*.gz" /> <IfLastModified age="7d" /> </Delete> </DefaultRolloverStrategy> <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY" /> </RollingRandomAccessFile> <RollingRandomAccessFile name="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-dd HH:mm:ss SSS}] %c - %m%n</pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> </Policies> <DefaultRolloverStrategy> <Delete basePath="${LOG_HOM}" maxDepth="1"> <IfFileName glob="fatalService*.gz" /> <IfLastModified age="7d" /> </Delete> </DefaultRolloverStrategy> <ThresholdFilter level="fatal" onMatch="ACCEPT" onMismatch="DENY" /> </RollingRandomAccessFile> <RollingRandomAccessFile name="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-dd HH:mm:ss SSS}] %c - %m%n</pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> </Policies> <DefaultRolloverStrategy> <Delete basePath="${LOG_HOM}" maxDepth="1"> <IfFileName glob="druidSql*.gz" /> <IfLastModified age="7d" /> </Delete> </DefaultRolloverStrategy> </RollingRandomAccessFile> </Appenders> <Loggers> <!-- 根logger的設(shè)置 --> <root level="info"> <appender-ref ref="console" /> <appender-ref ref="infoLog" /> <appender-ref ref="errorLog" /> <appender-ref ref="fatalLog" /> </root> <logger name="druid.sql.Statement" level="debug" additivity="false"> <appender-ref ref="druidSqlLog" /> </logger> <logger name="druid.sql.ResultSet" level="debug" additivity="false"> <appender-ref ref="druidSqlLog" /> </logger> </Loggers> </Configuration>
四:Druid配置
# MySQL,druid spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/upin_charge?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8 username: username: password: password: druid: # 連接池的配置信息 initial-size: 10 max-active: 100 min-idle: 10 max-wait: 60000 # 打開(kāi)PSCache,并且指定每個(gè)連接上PSCache的大小 pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 # 配置間隔多久才進(jìn)行一次檢測(cè),檢測(cè)需要關(guān)閉的空閑連接,單位是毫秒 time-between-eviction-runs-millis: 60000 # 配置一個(gè)連接池中最小生存的時(shí)間,單位是毫秒 min-evictable-idle-time-millis: 300000 validation-query: SELECT 1 FROM DUAL test-while-idle: true test-on-borrow: false test-on-return: false #配置DruidStatViewServlet stat-view-servlet: enabled: true url-pattern: /druid/* #login-username: admin #login-password: admin # # 配置監(jiān)控統(tǒng)計(jì)攔截的filters,去掉后,監(jiān)控界面sql無(wú)法統(tǒng)計(jì),'wall'用于防火墻 filters: stat,wall,log4j2 filter: stat: log-slow-sql: true slow-sql-millis: 1000 merge-sql: true wall: config: multi-statement-allow: true log4j2: enabled: true result-set-log-enabled: true statement-executable-sql-log-enable: true statement-create-after-log-enabled: false statement-close-after-log-enabled: false result-set-open-after-log-enabled: false result-set-close-after-log-enabled: false
五:日志文件查看
[DEBUG] [2019-08-06 16:58:20 570] druid.sql.Statement - {conn-10010, pstmt-20000} created. SELECT push_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_date FROM upin_msg.msg_push_info WHERE status='01' [DEBUG] [2019-08-06 16:58:20 577] druid.sql.Statement - {conn-10010, pstmt-20000} Parameters : [] [DEBUG] [2019-08-06 16:58:20 577] druid.sql.Statement - {conn-10010, pstmt-20000} Types : [] [DEBUG] [2019-08-06 16:58:20 595] druid.sql.Statement - {conn-10010, pstmt-20000} executed. SELECT push_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_date FROM upin_msg.msg_push_info WHERE status='01' [DEBUG] [2019-08-06 16:58:20 595] druid.sql.Statement - {conn-10010, pstmt-20000} executed. 19.4173 millis. SELECT push_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_date FROM upin_msg.msg_push_info WHERE status='01' [DEBUG] [2019-08-06 16:58:20 601] 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-05 13:41:12.0] [DEBUG] [2019-08-06 16:58:20 603] 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-05 13:52:05.0] [DEBUG] [2019-08-06 16:58:20 603] 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-05 13:53:50.0] [DEBUG] [2019-08-06 16:58:20 603] 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-06 10:41:10.0] [DEBUG] [2019-08-06 16:58:20 604] 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-06 13:49:58.0] [DEBUG] [2019-08-06 16:58:20 605] druid.sql.Statement - {conn-10010, pstmt-20000} clearParameters. [DEBUG] [2019-08-06 16:58:20 608] druid.sql.Statement - {conn-10010, pstmt-20000} Parameters : [] [DEBUG] [2019-08-06 16:58:20 608] druid.sql.Statement - {conn-10010, pstmt-20000} Types : []
網(wǎng)頁(yè)題目:備忘錄三:SpringBoot+Druid+log4j2
當(dāng)前地址:http://aaarwkj.com/article38/jejdpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、品牌網(wǎng)站建設(shè)、網(wǎng)站策劃、標(biāo)簽優(yōu)化、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、軟件開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)