https://github.com/polarfish/datasource-proxy-log-formatter
Extracts, interpolates, formats and pretty prints SQL from datasource-proxy json logs.
https://github.com/polarfish/datasource-proxy-log-formatter
datasource-proxy java spring-boot sql
Last synced: 5 months ago
JSON representation
Extracts, interpolates, formats and pretty prints SQL from datasource-proxy json logs.
- Host: GitHub
- URL: https://github.com/polarfish/datasource-proxy-log-formatter
- Owner: polarfish
- License: apache-2.0
- Created: 2021-10-14T19:55:48.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-03-20T12:00:55.000Z (12 months ago)
- Last Synced: 2025-04-14T20:38:56.625Z (11 months ago)
- Topics: datasource-proxy, java, spring-boot, sql
- Language: HTML
- Homepage: https://formatlog.polarfish.nl
- Size: 38.1 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# datasource-proxy-log-formatter
Extracts, interpolates, formats and pretty prints SQL from [datasource-proxy](https://github.com/ttddyy/datasource-proxy) json logs.
## Implementation details
- parses raw SLF4J logs using RegEx
- extracts and interpolates queries logged by [datasource-proxy](https://github.com/ttddyy/datasource-proxy) in JSON format
- formats the queries using [sql-formatter](https://github.com/zeroturnaround/sql-formatter)
- highlights the queries using [highlight.js](https://github.com/highlightjs/highlight.js)
## Screenshots

## Configuring Datasource Proxy for Spring Boot Tests
#### pom.xml
```xml
net.ttddyy
datasource-proxy
1.7
test
```
#### DatasourceProxyConfig.java
```java
package my.app;
// imports skipped
@TestConfiguration
class DatasourceProxyConfig implements BeanPostProcessor {
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof DataSource) {
return ProxyDataSourceBuilder
.create((DataSource) bean)
.name("dataSource-proxy")
.logQueryBySlf4j(SLF4JLogLevel.DEBUG)
.asJson()
.build();
}
return bean;
}
}
```
#### BaseIT.java
```java
package my.app;
// imports skipped
@SpringBootTest(classes = {
Application.class,
DatasourceProxyConfig.class
})
@RunWith(SpringRunner.class)
@ActiveProfiles("integration")
public abstract class BaseIT {
// ...
}
```
#### application-integration.yml
```yaml
# ...
logging:
level:
# Set SLF4JQueryLoggingListener log level to "debug" to enable Datasource Proxy Query logging
net.ttddyy.dsproxy.listener.logging.SLF4JQueryLoggingListener: off
# ...
```
For more configuration examples check [datasource-proxy-examples](https://github.com/ttddyy/datasource-proxy-examples)