SpringBoot使⽤logback输出⽇志并打印sql信息--经典---
最近在学习springboot以及⼀些springcloud插件的使⽤,其中发现默认的配置并不能打印⼀些有⽤的⽇志,所以需要⾃定义⼀些⽇志输出⽅式以便于查看⽇志排查问题,⽬前只整理了两种使⽤⽅式,如下:
1 简单⽇志配置
默认情况下spring boot使⽤Logback作为⽇志实现的框架,其内部使⽤Commons Logging来记录⽇志,同时也保留外部接⼝可以让⼀些⽇志框架来进⾏实现,
例如Java Util Logging,Log4J2还有Logback,如果你想⽤某⼀种⽇志框架来进⾏实现的话,就必须先配置。
其中最基础的⽇志配置就在在resources(即classpath路径)下⾯创建⼀个属性⽂件:application.properties。
1.1 配置控制台⽇志的level(级别)
默认情况下,spring boot从控制台打印出来的⽇志级别只有ERROR, WARN 还有INFO,如果你想要打印debug级别的⽇志,可以通过application.properites配置debug=true
1.2 可以通过logging.level.*配置⾃定义包的⽇志输出级别
=INFO
springframework.web=DEBUG
hibernate=ERROR
1.3 默认情况下spring boot是不将⽇志输出到⽇志⽂件中,但我们可以配置将⽇志输出到指定的⽂件中
logging.file=⽂件名称
logging.path=⽂件路径
⼩提⽰:在⽣产环境环境下,你可以通过命令⾏进⾏配置⽇志的debug级别-->java -jar C:\Users\Administrator\Desktop\xx\demo.jar --debug
这⾥需要注意⼏点:
这⾥若不配置具体的包的⽇志级别,⽇志⽂件信息将为空
若只配置logging.path,那么将会在F:\demo⽂件夹⽣成⼀个⽇志⽂件为spring.log(ps:该⽂件名是固定的,不能更改)。如果path路径不存在,会⾃动创建该⽂件夹
若只配置logging.file,那将会在项⽬的当前路径下⽣成⼀个demo.log⽇志⽂件。这⾥可以使⽤绝对路径如,会⾃动在e盘下创建⽂件夹和相应的⽇志⽂件。
logging.file=e:\\demo\\demo.log
logging.path和logging.file同时配置,不会在这个路径有F:\demo\demo.log⽇志⽣成,logging.path和logging.file不会进⾏叠加(要注意)
logging.path和logging.file的value都可以是相对路径或者绝对路径
example:
1. #采⽤Logback⽇志框架输出⽇志
2.
3. #在⽣产环境环境下,你可以通过命令⾏进⾏配置⽇志的debug级别
4. #java -jar C:\Users\Administrator\Desktop\xx\demo.jar --debug
5.
6. #默认情况下,spring boot从控制台打印出来的⽇志级别只有ERROR, WARN 还有INFO,如果你想要打印debug级别的⽇志,可
以通过application.properites配置debug=true
7. debug=true
8.
9. #配置logging.level.*来具体输出哪些包的⽇志级别
0. springframework.web=DEBUG
1. logging.loud.print.service.mapper=DEBUG
12.
3. #将⽇志输出到⽂件中
4. #默认情况下spring boot是不将⽇志输出到⽇志⽂件中,但你可以通过在application.properites⽂件中配置logging.file⽂件名称和
logging.path⽂件路径,将⽇志输出到⽂件中
5. logging.file=./xcloud-print.log
6. #logging.path=F:\\demo
17.
example:
springcloud难学吗</div>
<?xml version="1.0" encoding="UTF-8"?>
<!--<include resource="org/springframework/boot/logging/l" />-->
<!-- 1、logger
5          属性:
6            1)name:⽤来指定受此logger约束的某⼀个包或者具体的某⼀个类
7            2)level:⽤来设置打印级别,⼤⼩写⽆关(最常⽤的⼏种):DEBUG, INFO, WARN, ERROR
8          2、
9    -->
<!-- <logger name="org.springframework.web" level="DEBUG" /> -->
<!-- show parameters for hibernate sql 专为 Hibernate 定制 -->
<!--<logger name="pe.descriptor.sql.BasicBinder"  level="TRACE" />-->
<!--<logger name="pe.descriptor.sql.BasicExtractor"  level="DEBUG" />-->
<!--<logger name="org.hibernate.SQL" level="DEBUG" />-->
<!--<logger name="ine.QueryParameters" level="DEBUG" />-->
<!--<logger name="ine.query.HQLQueryPlan" level="DEBUG" />-->
<!-- mybatis⽇志打印 -->
<!-- <logger name="com.ibatis" level="DEBUG" /> -->
<!-- <logger name="com.ibatismon.jdbc.SimpleDataSource" level="DEBUG" /> -->
<!-- <logger name="com.ibatismon.jdbc.ScriptRunner" level="DEBUG" /> -->
<!-- <logger name="com.ine.impl.SqlMapClientDelegate" level="DEBUG" /> -->
<!-- <logger name="java.sql.Connection" level="DEBUG" /> -->
<!-- <logger name="java.sql.Connection" level="DEBUG" /> -->
<!-- <logger name="java.sql.Statement" level="DEBUG" /> -->
<!-- <logger name="java.sql.PreparedStatement" level="DEBUG" /> -->
<!-- 这⼀句⾄关重要如果没有,就⽆法输出sql语句 -->
<!--<logger name="loud.print.service.mapper" level="DEBUG"></logger>-->
<!--
说明:
1、⽇志级别及⽂件
⽇志记录采⽤分级记录,级别与⽇志⽂件名相对应,不同级别的⽇志信息记录到不同的⽇志⽂件中
例如:error级别记录到log_error_xxx.log或log_error.log(该⽂件为当前记录的⽇志⽂件),⽽log_error_xxx.log为归档⽇志,
⽇志⽂件按⽇期记录,同⼀天内,若⽇志⽂件⼤⼩等于或⼤于2M,则按0、1、2...顺序分别命名
例如log-level-2013-12-21.0.log
其它级别的⽇志也是如此。
2、⽂件路径
若开发、测试⽤,在Eclipse中运⾏项⽬,则到Eclipse的安装路径查logs⽂件夹,以相对路径../logs。
若部署到Tomcat下,则在Tomcat下的logs⽂件中
3、Appender
FILEERROR对应error级别,⽂件名以log-error-xxx.log形式命名
FILEWARN对应warn级别,⽂件名以log-warn-xxx.log形式命名
FILEINFO对应info级别,⽂件名以log-info-xxx.log形式命名
FILEDEBUG对应debug级别,⽂件名以log-debug-xxx.log形式命名
stdout将⽇志信息输出到控制上,为⽅便开发测试使⽤
-->
<!-- 彩⾊⽇志 -->
<!-- 彩⾊⽇志依赖的渲染类 -->
<!-- 彩⾊⽇志格式 -->
<!--包名输出缩进对齐-->
<!--<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_P    <!--设置系统⽇志⽬录-->
<!-- ⽇志记录器,⽇期滚动记录 -->
<!-- 正在记录的⽇志⽂件的路径及⽂件名 -->${LOG_PATH}/${APPDIR}/xcloud-print_log_error.log
<!-- ⽇志记录器的滚动策略,按⽇期,按⼤⼩记录 -->
<!-- 归档的⽇志⽂件的路径,例如今天是2013-12-21⽇志,当前写的⽇志⽂件路径为file节点指定,可以将此⽂件与file指定⽂件路径设置为不同路径,从⽽将当前⽇⽽2013-12-21的⽇志⽂件在由fileNamePattern指定。%d{yyyy-MM-dd}指定⽇期格式,%i指定索引 -->${LOG_PATH}/${APPDIR}/error/xcloud-print_log-er    <!-- 除按⽇志记录之外,还配置了⽇志⽂件不能超过2M,若超过2M,⽇志⽂件会以索引0开始,
命名⽇志⽂件,例如log-error-2013-12-21.0.log -->12MB
<!-- 追加⽅式记录⽇志 -->true
<!-- ⽇志⽂件的格式 -->%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%thread] %logger Line:%-3L - %msg%nutf-8
<!-- 此⽇志⽂件只记录error级别的 -->errorACCEPTDENY
<!-- ⽇志记录器,⽇期滚动记录 -->
<!-- 正在记录的⽇志⽂件的路径及⽂件名 -->${LOG_PATH}/${APPDIR}/xcloud-print_log_warn.log
<!-- ⽇志记录器的滚动策略,按⽇期,按⼤⼩记录 -->
<!-- 归档的⽇志⽂件的路径,例如今天是2013-12-21⽇志,当前写的⽇志⽂件路径为file节点指定,可以将此⽂件与file指定⽂件路径设置为不同路径,从⽽将当前⽇⽽2013-12-21的⽇志⽂件在由fileNamePattern指定。%d{yyyy-MM-dd}指定⽇期格式,%i指定索引 -->${LOG_PATH}/${APPDIR}/warn/xcloud-print_log-wa    <!-- 除按⽇志记录之外,还配置了⽇志⽂件不能超过2M,若超过2M,⽇志⽂件会以索引0开始,
命名⽇志⽂件,例如log-error-2013-12-21.0.log -->12MB
<!-- 追加⽅式记录⽇志 -->true
<!-- ⽇志⽂件的格式 -->%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%thread] %logger Line:%-3L - %msg%nutf-8
<!-- 此⽇志⽂件只记录warn级别的 -->warnACCEPTDENY
<!-- ⽇志记录器,⽇期滚动记录 -->
<!-- 正在记录的⽇志⽂件的路径及⽂件名 -->${LOG_PATH}/${APPDIR}/xcloud-print_log_info.log
<!-- ⽇志记录器的滚动策略,按⽇期,按⼤⼩记录 -->
<!-- 归档的⽇志⽂件的路径,例如今天是2013-12-21⽇志,当前写的⽇志⽂件路径为file节点指定,可以将此⽂件与file指定⽂件路径设置为不同路径,从⽽将当前⽇⽽2013-12-21的⽇志⽂件在由fileNamePattern指定。%d{yyyy-MM-dd}指定⽇期格式,%i指定索引 -->${LOG_PATH}/${APPDIR}/info/xcloud-print_log-info    <!-- 除按⽇志记录之外,还配置了⽇志⽂件不能超过2M,若超过2M,⽇志⽂件会以索引0开始,
命名⽇志⽂件,例如log-error-2013-12-21.0.log -->12MB
<!-- 追加⽅式记录⽇志 -->true
<!-- ⽇志⽂件的格式 -->%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%thread] %logger Line:%-3L - %msg%nutf-8
<!-- 此⽇志⽂件只记录info级别的 -->infoACCEPTDENY
<!-- ⽇志记录器,⽇期滚动记录 -->
<!-- 正在记录的⽇志⽂件的路径及⽂件名 -->${LOG_PATH}/${APPDIR}/xcloud-print_log_debug.log
<!-- ⽇志记录器的滚动策略,按⽇期,按⼤⼩记录 -->
<!-- 归档的⽇志⽂件的路径,例如今天是2013-12-21⽇志,当前写的⽇志⽂件路径为file节点指定,可以将此⽂件与file指定⽂件路径设置为不同路径,从⽽将当前⽇⽽2013-12-21的⽇志⽂件在由fileNamePattern指定。%d{yyyy-MM-dd}指定⽇期格式,%i指定索引 -->${LOG_PATH}/${APPDIR}/info/xcloud-print_log-deb    <!-- 除按⽇志记录之外,还配置了⽇志⽂件不能超过2M,若超过2M,⽇志⽂件会以索引0开始,
命名⽇志⽂件,例如log-error-2013-12-21.0.log -->12MB
命名⽇志⽂件,例如log-error-2013-12-21.0.log -->12MB
<!-- 追加⽅式记录⽇志 -->true
<!-- ⽇志⽂件的格式 -->%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%thread] %logger Line:%-3L - %msg%nutf-8
<!-- 此⽇志⽂件只记录debug级别的 -->debugACCEPTDENY
<!--encoder 默认配置为PatternLayoutEncoder-->${CONSOLE_LOG_PATTERN}
<!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level -undefinedundefined [%thread] %logger Line:%-3L - %msg%n</pattern>-->utf-8    <!--此⽇志appender是为开发使⽤,只配置最底级别,控制台输出的⽇志级别是⼤于或等于此级别的⽇志信息-->debug
<!-- mybatis⽇志打印 -->
<!-- ⽣产环境下,将此级别配置为适合的级别,以免⽇志⽂件太多或影响程序性能 -->
<!-- ⽣产环境将请stdout,testfile去掉 -->
<!--⽇志异步到数据库 -->
<!--<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">-->
<!--
<!–⽇志异步到数据库 –>-->
<!--<connectionSource class="ch.db.DriverManagerConnectionSource">-->
<!--
<!&ndash;连接池 –>-->
<!--<dataSource class="hange.v2.c3p0.ComboPooledDataSource">-->
<!--<driverClass&sql.jdbc.Driver</driverClass>-->
<!--<url>jdbc:mysql://127.0.0.1:3306/databaseName</url>-->
<!--<user>root</user>-->
<!--<password>root</password>-->
<!--</dataSource>-->
<!--</connectionSource>-->
<!--</appender>-->

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。