springboot 入门五-日志一
springboot内部采用commons logging作为日志纪录,但也保留了第三方的日志框架接入的实现,例如Java Util Logging,Log4J2还有Logback。如果你要实现一种日志需要预先进行设置。spring boot默认使用logback做为日志框架
一、默认日志写法:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
private final Log logger = LogFactory.getLog(getClass());
logger.info("打印INFO 日志信息");
输出的日志格式:
2017-09-13 11:29:40.341 INFO 4768 --- [nio-9090-exec-1] com.song.boot.controller.HomeController : 打印INFO 日志信息
打印时间:为了便于排序,时间精确到毫秒级
日志级别:ERROR
, WARN
, INFO
, DEBUG
or TRACE (默认打印
ERROR
, WARN
, INFO
三级别日志消息)
进程ID
---分隔符:分隔符区分实际日志消息的开始
括号: 线程名称,使用括号方便截取
日志名称
日志具体消息
二、日志输出
springboot日志默认输出到console,不会输出外部文件。如果想要在控制台输出之外编写日志文件,则需要设置一个日志相关配置logging.file或logging.path在application.properties中
logging.file=D://my.log (指定文件)
logging.path=E://my.log (指定目录)
file比path级别高,如果配置file属性会过滤path。 path是生成一个my.log的文件,日志文件名spring.log
三、日志级别(ERROR
, WARN
, INFO
, DEBUG
or TRACE
)
logging.level.root=WARN
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR
四、定制化外面日志框架
通过classpath中类库可以激活相应的日志系统,或者在spring的环境属性logging.config进一步定制。
日志系统 定制文件
Logback logback-spring.xml, logback-spring.groovy, logback.xml or logback.groovy
Log4j2 log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging) logging.properties (会报出已知的加载类的问题,建议不要使用)
举例logback来详细说明配置:
logback的日志文件命名是logback-spring.xml,而不是logback.xml,原因是,命名为logback-spring.xml的日志配置文件,spring boot可以为它添加一些spring boot特有的配置项。
logback-spring.xml模板
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%-16(%d{MM-dd HH:mm:ss}) %-5thread %logger{3} -%msg%n</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
<appender name="bootAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>E:/logs/boot.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>E:/logs/boot.log.%d{yyyy-MM-dd}</FileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%-16(%d{MM-dd HH:mm:ss}) %-5thread %logger{3} -%msg%n</pattern>
</encoder>
</appender>
<logger name="bootAppender" additivity="false" level="INFO">
<appender-ref ref="bootAppender" />
</logger>
</configuration>
使用:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private Logger log_console = LoggerFactory.getLogger(getClass()); //打印console输出
private Logger log_boot = LoggerFactory.getLogger("bootAppender");//输出到外部文件
file:输出外面文件路径
rollingPolicy.FileNamePattern:文件分隔规则
encoder.pattern:输出格式
encoder.charset:输出内容字符码
logger.additivity:是否往上输出
logger.level:输出日志的级别
如果使用定制化外部日志框架, 并不需要去application.properties进行日志设置。若需要修改框架内部日志输出等级,在logback-spring.xml加入<logger name="org.springframework.web" level="DEBUG"/>
springboot 入门五-日志一的更多相关文章
- SpringBoot入门 (三) 日志配置
上一篇博文记录了再springboot项目中读取属性文件中配置的属性,本文学习在springboot项目中记录日志. 日志记录在项目中是很常见的一个功能了,对排查问题有很大帮助,也可以做分类分析及统计 ...
- SpringBoot入门 (五) 数据库访问之spring data jpa
本文记录学习使用spring data jpa访问数据库 一 什么是Spring Data JPA JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java ...
- SpringBoot入门基础
目录 SpringBoot入门 (一) HelloWorld. 2 一 什么是springboot 1 二 入门实例... 1 SpringBoot入门 (二) 属性文件读取... 16 一 自定义属 ...
- SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)
SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,SpringBoot致力于在蓬勃发 ...
- SpringBoot入门(五)——自定义配置
本文来自网易云社区 大部分比萨店也提供某种形式的自动配置.你可以点荤比萨.素比萨.香辣意大利比萨,或者是自动配置比萨中的极品--至尊比萨.在下单时,你并没有指定具体的辅料,你所点的比萨种类决定了所用的 ...
- SpringBoot入门系列(十二)统一日志收集
前面介绍了Spring Boot 异常处理,不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/category/1657780.html. 今 ...
- SpringBoot入门及深入
一:SpringBoot简介 当前互联网后端开发中,JavaEE占据了主导地位.对JavaEE开发,首选框架是Spring框架.在传统的Spring开发中,需要使用大量的与业务无关的XML配置才能使S ...
- SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1
在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...
- SpringBoot入门(三)——入口类解析
本文来自网易云社区 上一篇介绍了起步依赖,这篇我们先来看下SpringBoot项目是如何启动的. 入口类 再次观察工程的Maven配置文件,可以看到工程的默认打包方式是jar格式的. <pack ...
随机推荐
- SpringAware
哈哈,终于把分布式的课程演讲给混过去了,下面开始随便自己学点东西. 正题:SpringAware--------在实际项目中,用到spring容器的本省功能资源,这是Bean必须意识到Spring容器 ...
- spring+springmvc+mybatis+oracle+atomikos+jta实现多数据源事务管理
---恢复内容开始--- 在做项目过程中,遇到了需要一个项目中访问两个数据库的情况,发现使用常规的spring管理事务,导致事务不能正常回滚,因此,采用了jta+atomikos的分布式数据源方式 ...
- AutoCAD.net支持后台线程-Socket服务端
最近因为公司项目的需求,CAD作为服务端在服务器中常驻运行,等待客户端远程发送执行任务的指令,最终确认用Socket-tcp通讯,CAD需要实时监听客户端发送的消息,这时就需要开启线程执行Socket ...
- svg-写一个简单的进度条
html <div class="container"> <div class="line-wrap"> <svg version ...
- 关于苹果APP的上架整理
由于苹果的机制,在非越狱机器上安装应用必须通过官方的App Store,开发者开发好应用后上传App Store,也需要通过审核等环节.AppCan作为一个跨主流平台的一个开发平台,也对ipa包上传A ...
- C语言之二分猜数字游戏
#include <stdio.h>#include <windows.h>#include<string.h>int main() { int oldprice, ...
- 解释器模式(Interpreter)
解释器模式(Interpreter)解释器模式是我们暂时的最后一讲,一般主要应用在OOP开发中的编译器的开发中,所以适用面比较窄. Context类是一个上下文环境类,Plus和Minus分别是用来计 ...
- 使用Bitbucket Pipeline进行.Net Core项目的自动构建、测试和部署
1. 引言 首先,Bitbucket提供支持Mercurial和Git版本控制系统的网络托管服务.简单来说,它类似于GitHub,不同之处在于它支持个人免费创建私有项目仓库.除此之外,Bitbucke ...
- 数据库索引------Btree索引的使用限制
1.如果不是按照索引最左列开始查找,则无法使用索引. 比如说id+name 那么是name+id 的话 ,这个索引则无法使用. 2.使用索引时不能跳过索引中的列. 如果是id+name+ag ...
- SQL Server 2017 安装过程中的一点说明(有点意思)
会提到:“安装程序无法与下载服务器联系.请提供 Microsoft 机器学习服务器安装文件的位置,然后单击“下一步”.可从以下位置下载安装文件” 的解决方案 安装过程和2016大体一致,机器学习这款更 ...