p6spy使用(2)_习惯累积沉淀_新浪博客

写到单独的日志里,不和其他日志混起来
1. com.a.LogbackLogger
2. log4j的配置
3. spy.properties的配置


p6spy的logger有点怪,FIleLogger并没有打到 spy.properties配置的文件里, 改用log4j
package com.a;

import com.p6spy.engine.logging.appender.FileLogger;
import com.p6spy.engine.logging.appender.StdoutLogger;

//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
  
public class LogbackLogger extends   FileLogger{
//    private static final Logger logger = LoggerFactory.getLogger("p6spy");
// private static final Logger logger = LoggerFactory.getLogger(LogbackLogger.class);
private static final Logger logger = Logger.getLogger(LogbackLogger.class);
  
    public String getLastEntry() {
        return lastEntry;
    }
  
    public void setLastEntry(String lastEntry) {
        this.lastEntry = lastEntry;
    }
  
    protected String lastEntry;
    
    private String lastSql=""; 
  
    @Override
    public void logSQL(int connectionId, String s, long l, String category, String s1,String sql) {
    if("result".equals(category)){//过滤掉
    return; //result没有信息量。resultset才有
    }
       
    if ("resultset".equals(category)) {
    if (s1.equals(lastSql)){
    return;//如果是重复的查询结果,即一个同一个查询多行结果导致的多行问题。 return
    }else{
    logger.info(s1);
    //logger.info(sql);
            lastSql = s1;
    }
        }else if("statement".equals(category)){
    logger.info(sql);
        }else if("commit".equals(category)){
        logger.info("commit");
        }
         
    }
  
    @Override
    public void logException(Exception e) {
        logger.error(e.getMessage(),e);
    }
  
    @Override public void logText(String s) {
        logger.info(s);
        this.setLastEntry(s);
    }
   
    private String trim(String sql){
        StringBuilder sb = new StringBuilder("\r\n");
        sb.append(sql.replaceAll("\n|\r|\t|'  '"," "));
        return sb.toString();
    }


log4j

#jdbc sql 日志

log4j.logger.com.a=DEBUG, LogbackLogger
log4j.appender.LogbackLogger=org.apache.log4j.FileAppender 
log4j.appender.LogbackLogger.Append=false
log4j.appender.LogbackLogger.File=d:/jdbcLog.log
log4j.appender.LogbackLogger.DatePattern= '.'yyyy-MM-dd
log4j.appender.LogbackLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.LogbackLogger.layout.ConversionPattern= [%d] [%-5p] : %m%n



spy.properties  --不过滤category
logfile     = D:/workspace/spy.log


realdriver=oracle.jdbc.driver.OracleDriver
reload = false
stacktrace = false
module.log=com.p6spy.engine.logging.P6LogFactory
#appender=com.p6spy.engine.logging.appender.StdoutLogger
#appender=com.p6spy.engine.logging.appender.FileLogger
 
appender=com.a.LogbackLogger

#log4j.logger.p6spy=warn,STDOUT
log4j.logger.p6spy=debug,FILE
log4j.appender.spy6p.File=D:/workspace/spy.log
dateformat=HH:mm:ss
useprefix=false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值