springboot p6spy 和log4j 输出在统一文件
时间: 2024-06-08 13:10:43 浏览: 271
可以使用log4j的日志输出方式,将p6spy输出的日志也输出到同一个文件中。具体操作步骤如下:
1. 在pom.xml中引入p6spy和log4j的依赖:
```xml
<!-- p6spy -->
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>3.9.1</version>
</dependency>
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
```
2. 配置p6spy,在application.properties中添加以下配置:
```properties
# p6spy
spring.datasource.driver-class-name=com.p6spy.engine.spy.P6SpyDriver
spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
# p6spy输出配置
spy.properties=spy.properties
```
在项目根目录下创建spy.properties文件,添加以下配置:
```properties
# 输出日志到控制台
appender=com.p6spy.engine.spy.appender.StdoutLogger
# 输出日志到文件
# appender=com.p6spy.engine.spy.appender.FileLogger
# 文件路径,根据实际情况修改
logFile=log/p6spy.log
# 日志输出格式
logMessageFormat=com.p6spy.engine.spy.appender.SingleLineFormat
```
3. 配置log4j,在log4j.properties文件中添加以下配置:
```properties
# 输出日志到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %m%n
# 输出日志到文件
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log/all.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %m%n
# p6spy输出配置
log4j.logger.p6spy=INFO, file
```
其中,log4j.logger.p6spy指定了p6spy输出的日志级别和输出方式,这里配置为INFO级别,输出到file这个appender中。
4. 测试,在代码中添加如下语句:
```java
logger.debug("debug log");
logger.info("info log");
logger.warn("warn log");
logger.error("error log");
```
启动项目后,可以在log/all.log文件中看到所有日志的输出,包括p6spy的SQL执行日志。
阅读全文