我想在 spring boot 中通過 p6spy 顯示 sql 參數(shù),因?yàn)?hibernate 顯示的 sql 參數(shù)非常龐大。但由于某種原因,p6spy 記錄器輸出 sql 消息兩次,盡管實(shí)際上對(duì) db 的查詢執(zhí)行一次。通常的 spring 應(yīng)用程序可以正常使用我的 p6spy 配置。Spring Boot 應(yīng)用程序可以正常使用休眠輸出。spy.properties:driverlist=org.postgresql.Driverappender=com.p6spy.engine.spy.appender.Slf4JLoggerlogMessageFormat=com.p6spy.engine.spy.appender.CustomLineFormatcustomLogMessageFormat=time %(executionTime)|con %(connectionId)|%(sqlSingleLine)log4j2.xml:<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN"> <Properties> <Property name="layoutPattern"> %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n </Property> </Properties><Appenders> <Console name="stdout"> <PatternLayout pattern="${layoutPattern}"/> </Console></Appenders><Loggers> <Root level="info"> <AppenderRef ref="stdout" /> </Root></Loggers></Configuration>休眠配置:@Configuration@EnableTransactionManagementpublic class HibernateConfig {@Beanpublic LocalSessionFactoryBean getSessionFactory(){ LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); sessionFactory.setPackagesToScan("bel.rdigital.p6spy.boot.test.model"); Properties hibernateProperties = new Properties(); hibernateProperties.setProperty(DIALECT, "org.hibernate.dialect.PostgreSQLDialect"); hibernateProperties.setProperty(HBM2DDL_AUTO, "create"); hibernateProperties.setProperty(SHOW_SQL, "true");}我期望一個(gè) sql 輸出,但得到兩個(gè)具有不同 p6spy 連接的相似 sql 輸出:1) p6spy - time 1|con 2|insert into serverstartups (applicationName, hostName, ip, startDate, stopDate, startupId) 值 ('', 'DIMON-LAPTOP', '192.168.88.244', '2019-02-11T12: 00:46.989+0300',空值,1)2) p6spy - time 1|con 5|insert into serverstartups (applicationName, hostName, ip, startDate, stopDate, startupId) 值 ('', 'DIMON-LAPTOP', '192.168.88.244', '2019-02-11T12: 00:46.989+0300',空值,1)如您所見,除了連接(2 和 5)之外,這些輸出是相似的
2 回答

吃雞游戲
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
原來spring boot會(huì)自動(dòng)為p6spy創(chuàng)建wrapper,所以換行解決了這個(gè)問題
return new P6DataSource(dataSource)
在線的
return dataSourse;
添加回答
舉報(bào)
0/150
提交
取消