log4j和p6spy日志管理

以下信息来自:网络和自己的理解


 大家做项目都知道,日志对开发人员的重要性,但是日志的打印和记录是很耗资源的。以前开发一个项目,做压力测试的时候,发现性能总是提不上去,偶然因素发现,开发人员在写代码的时候,为了方便调试,有很多debug和info信息,项目上线后,没有做日志级别处理,然后将生产环境的日志级别调整到ERROR,性能一下就上去了。所有开发开发环境和生产环境需要不同的日志级别,而且需要输出到不同路径下。log4j可以满足这些需求;有时候错误不是在业务方面,是出在了数据库sql级别的,这时候对数据库sql的记录信息就相当重要:p6spy日志框架就是专注于数据库级别的。



  1、log4j的配置:

         log4j的配置有xml和property两种配置,主要说property配置:

           创建一个   log4j.properties文件,配置是基于:key=value形式的。

            Log4J配置文件的基本格式如下: 

#配置根Logger
log4j.rootLogger 
=   [ level ]   , appenderName1 , appenderName2 ,
 …===》第一个value值是配置基本日志级别,后面可以有多个appenderName,多个appenderName的目的是想对不同appenderName做不同的配置:比如日志记录的级别,日志记录的方式,输出格式,布局等等

#配置日志信息输出目的地Appender
log4j.appender.appenderName 
=
 fully.qualified.name.of.appender.class 
  log4j.appender.appenderName.option1 
=
 value1 
  … 
  log4j.appender.appenderName.optionN 
=
 valueN 

#配置日志信息的格式(布局)
log4j.appender.appenderName.layout 
=
 fully.qualified.name.of.layout.class 
  log4j.appender.appenderName.layout.option1 
=
 value1 
  … 
  log4j.appender.appenderName.layout.optionN 
可以使用log4j日志输出方式,将p6spy输出的日志也输出到同一个文件中。具体操作步骤如下: 1. 在pom.xml中引入p6spylog4j的依赖: ```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执行日志
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值