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不要大写,会不能识别的

猜你喜欢

转载自www.cnblogs.com/longsanshi/p/9228505.html