• spring data jpa运用


    一、问题:

    1.spring boot 项目中已spring data jpa作为持久层,默认的日志打印用的logback,如果用log4j呢

    2.默认的日志打印方式为全部在一个文件,而spring data jpa 会打印大量日志,从而日志文件很大,打不开,生成环境错误怎么解决

    3.运用log4j作为日志打印,日志级别为info不会打印sql,有时候错误无法排查,debug级别又会打印很多没用的日志,怎么去掉一些没用的日志

    补充(貌似logback各方面比log4j好多,但是log4就作为很久以来的日志打印工具,应该也不会差到哪里,我用logback做为日志打印,启动貌似增加了了20多秒)

    接下来解决这些问题

    二、解决方法:

    1.在pom文件中使logback失效,并用log4j,加入以下依赖

    <exclusion>起到的这个作用
     <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <exclusions>
    <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> <version>1.3.8.RELEASE</version> </dependency>

    2.使用循环日志,规定日志大小,这样就能够打开了,添加log4j.properties文件,springboot会自动读取的,

    我们设置日志的总级别为debug,单独设置控制台的日志基本为info,如果设置控制台为debug会打印过多的日志,控制台为什么info基本会打印sql,没有搞懂

    log4j.logger.org.hibernate.loader.plan.exec.process.internal.CollectionReferenceInitializerImpl=info 
    
    # 排除没用的日志  
    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,SSS} %5p %c{1}:%L - %m%n 
    log4j.appender.stdout.Threshold = info  
    log4j.appender.stdout.Encoding=utf-8
    #控制台输出
    log4j.appender.R=org.apache.log4j.RollingFileAppender
    log4j.appender.R.append=true
    log4j.appender.R.File=d://zoo_logs/zoo_log.txt
    log4j.appender.R.MaxFileSize=2000KB
    log4j.appender.R.MaxBackupIndex=30
    log4j.appender.R.Encoding=utf-8
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
     
     ### 保存异常信息到单独文件 ###
    log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.D.File = d://zoo_logs/error.log 
    log4j.appender.D.Append = true
    log4j.appender.D.Encoding=utf-8
    log4j.appender.D.Threshold = ERROR 
    log4j.appender.D.layout = org.apache.log4j.PatternLayout
    log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

    3.排除没用的日志的代码:

    log4j.logger.org.hibernate.engine.internal.TwoPhaseLoad=info  
    log4j.logger.org.hibernate.loader.plan.exec.process.internal.ResultSetProcessorImpl=info 
    log4j.logger.org.hibernate.engine.loading.internal.CollectionLoadContext=info 
    log4j.logger.org.hibernate.loader.Loader=info 
    log4j.logger.org.hibernate.loader.plan.exec.process.internal.CollectionReferenceInitializerImpl=info

    补充:编码格式utf-8不要大写,会不能识别的

  • 相关阅读:
    整理SVN代码-->正式环境的代码
    业务(1)
    在一个项目中跨领域调用接口的的实现
    一个java文件编译之后会产生多个class文件
    shutil模块
    shevle模块
    confiparser模块
    sys模块
    subprocess模块
    【ADO.NET】3、从TXT中导入数据到数据库
  • 原文地址:https://www.cnblogs.com/longsanshi/p/9228505.html
Copyright © 2020-2023  润新知