Logback 输出 JPA SQL日志 到文件

使用Spring Boot 配置 JPA 时可以指定如下配置在控制台查看执行的SQL语句

spring.jpa.show-sql=true

Spring Boot 默认的日志配置不会输出到文件,若要打印日志到文件,可以使用如下配置:

llogging.level后跟要打印日志的包名或类的全限定名,设置打印级别

日志级别:TRACE < DEBUG < INFO < WARN < ERROR < FATAL

logging.level.com.example=INFO

配置日志文件的名称,可以使用绝对路径和相对路径

logging.file=test.log

设置日志目录,默认在目录下生成 spring.log

logging.path=

其他如格式等配置请查官方文档

一般在生产上,需要将项目日志进行分类,错误日志单独打印,业务日志等。

在使用 JPA 的时候,spring.jpa.show-sql=true可以在控制台看到SQL语句,但是无法打印到日志,试了很多种方法都没用生效,后来在stackoverflow发现以下配置可行:
输出Hibernate SQL 到日志

<!--输出到控制台-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

<!--输出到文件-->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>logback.%d{yyyy-MM-dd}.log</fileNamePattern>
    </rollingPolicy>
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

<appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>ERROR</level>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>error.%d{yyyy-MM-dd}.log</fileNamePattern>
    </rollingPolicy>
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

   <!-- 1. 输出SQL 到控制台和文件-->
 <logger name="org.hibernate.SQL" additivity="false" >
    <level value="DEBUG" />
    <appender-ref ref="file" />
    <appender-ref ref="console" />
</logger>

   <!-- 2. 输出SQL 的参数到控制台和文件-->
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" additivity="false" level="TRACE" >
    <level value="TRACE" />
    <appender-ref ref="file" />
    <appender-ref ref="console" />
</logger>
<root level="info">
    <appender-ref ref="console" />
    <appender-ref ref="file" />
</root>

推荐使用 方案1,2一起打印SQL和参数,相关日志会少点。

logback 中 logger 标签参数作用:name:指定打印日志的包或类,additivity: 是否向上传递日志,level 打印日志级别,appender-ref :使用哪种打印机制

说明一下 additivity属性,logback 日志打印有一个根节点也就是上面的 标签,一般情况下不指定additivity的情况为true ,也就是向上传递日志

作者:带着天使反上帝
来源:CSDN
原文:https://blog.csdn.net/sinat_25295611/article/details/81073011
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/ITbbs/p/10126075.html

时间: 2024-08-02 20:19:57

Logback 输出 JPA SQL日志 到文件的相关文章

spring boot+logback+JdbcTemplate打印sql日志

项目中使用的JdbcTemplate直接在service中执行sql语句,配置如下: 使用IDEA创建的项目自带 main/resource 中自带logback.xml 配置文件,添加以下日志配置,本人测试只添加以下这部分就够了 <?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/

mybatis结合log4j打印SQL日志

1.Maven引用jar包 默认的mybatis不能打印出SQL日志,不便于查看调试,须要结合log4jdbc-log4j2就能够完整的输入SQL的调试信息. pom.xml 配置maven.注意以下3个都须要 <dependency> <groupId>org.bgee.log4jdbc-log4j2</groupId> <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId> <version&g

ibatis配置log4j输出sql日志信息

为了在开发过程更加直观,我们需要将ibatis日志打开以便观察ibatis运作的细节. ibatis采用Apache common_logging,并结合Apache log4j作为日志输出组件. 在CLASSPATH中新建log4j.properties配置文件,内容如下: log4j.rootLogger=DEBUG,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layo

springboot输出日志到文件配置

新建logback-spring.xml,内容如下: <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds"> <property name="ENCODER_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS}

Spring Boot 使用 Log4j2 &amp; Logback 输出日志到 EKL

文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK 是 Elasticsearch , Logstash, Kibana 的缩写,Elasticsearch 是开源分布式搜索引擎,提供搜集.分析.存储数据等功能,Logstash 主要是用来日志的搜集.分析.过滤日志的工具,Kibana 为 Elasticsearch 提供分析和可视化的 Web 平台

log4j输出日志到文件

输出端Appender Appender用来指定日志信息输出到哪个地方,可以同时指定多个输出目的地.Log4j允许将信息输出到许多不同的输出设备中,一个log信息输出目的地就叫做一个Appender.每个Logger都可以拥有一个或多个Appender,每个Appender表示一个日志的输出目的地.可以使用Logger.addAppender(Appender app)为Logger增加一个Appender,也可以使用Logger.removeAppender(Appender app)为Log

Log4j指定输出日志的文件

在Log4j的配置文件中,有一个log4j.rootLogger用于指定将何种等级的信息输出到哪些文件中, 这一项的配置情况如下: log4j.rootLogger=日志等级,输出目的地1,输出目的地2,... 日志等级可以是ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF,一般主要都是使用DEBUG, INFO, WARN, ERROR这四项. 指定日志等级后,可以指定日志输出的目的地,这个目的地可以是任意的符合命名规则的名字,给出这些名字后,会在后面对这些名

SQL日志文件的作用

服务器意外关闭造成的损失.服务器意外关闭造成的损失.解决数据一致性问题.数据库时点恢复的问题,这四个常见的问题,SQL Server数据库管理员,可以通过了解数据日志文件,轻松排除故障. 当系统出现故障时,只要存在数据日志那么就可以利用它来恢复数据解决数据库故障.作为SQL Server数据库管理员,了解数据日志文件的作用,以及如何利用它来解决一些数据库的常见故障,这非常重要.既然事务日志这么重要,那么他到底可以用来做什么事情呢? 故障一:服务器意外关闭造成的损失. 俗话说,天又不测风云.数据库

Python + logging 输出到屏幕,将log日志写入文件

原文地址 : https://www.cnblogs.com/nancyzhu/p/8551506.html 日志 日志是跟踪软件运行时所发生的事件的一种方法.软件开发者在代码中调用日志函数,表明发生了特定的事件.事件由描述性消息描述,该描述性消息可以可选地包含可变数据(即,对于事件的每次出现都潜在地不同的数据).事件还具有开发者归因于事件的重要性:重要性也可以称为级别或严重性. logging提供了一组便利的函数,用来做简单的日志.它们是 debug(). info(). warning().