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 日志信息

打印时间:为了便于排序,时间精确到毫秒级

日志级别:ERRORWARNINFODEBUG or TRACE (默认打印ERRORWARNINFO三级别日志消息)

进程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

三、日志级别ERRORWARNINFODEBUG 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 入门五-日志一的更多相关文章

  1. SpringBoot入门 (三) 日志配置

    上一篇博文记录了再springboot项目中读取属性文件中配置的属性,本文学习在springboot项目中记录日志. 日志记录在项目中是很常见的一个功能了,对排查问题有很大帮助,也可以做分类分析及统计 ...

  2. SpringBoot入门 (五) 数据库访问之spring data jpa

    本文记录学习使用spring data jpa访问数据库 一 什么是Spring Data JPA JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java ...

  3. SpringBoot入门基础

    目录 SpringBoot入门 (一) HelloWorld. 2 一 什么是springboot 1 二 入门实例... 1 SpringBoot入门 (二) 属性文件读取... 16 一 自定义属 ...

  4. SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)

    SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,SpringBoot致力于在蓬勃发 ...

  5. SpringBoot入门(五)——自定义配置

    本文来自网易云社区 大部分比萨店也提供某种形式的自动配置.你可以点荤比萨.素比萨.香辣意大利比萨,或者是自动配置比萨中的极品--至尊比萨.在下单时,你并没有指定具体的辅料,你所点的比萨种类决定了所用的 ...

  6. SpringBoot入门系列(十二)统一日志收集

    前面介绍了Spring Boot 异常处理,不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/category/1657780.html. 今 ...

  7. SpringBoot入门及深入

    一:SpringBoot简介 当前互联网后端开发中,JavaEE占据了主导地位.对JavaEE开发,首选框架是Spring框架.在传统的Spring开发中,需要使用大量的与业务无关的XML配置才能使S ...

  8. SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1

    在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...

  9. SpringBoot入门(三)——入口类解析

    本文来自网易云社区 上一篇介绍了起步依赖,这篇我们先来看下SpringBoot项目是如何启动的. 入口类 再次观察工程的Maven配置文件,可以看到工程的默认打包方式是jar格式的. <pack ...

随机推荐

  1. js实际工作中的技能点

    1.基础知识 a.原型,原型链 b.作用域,闭包 c.异步,单线程 2.JS API a.DOM操作 b.Ajax c.事件绑定 3.开发环境 a.版本管理(git) b.模块化(require.js ...

  2. 关于cocos2d-x面试的问题

    关于高效渲染的问题: 1.先说下渲染批次:这是游戏引擎中一个比较重要的优化指标,指的是一次渲染凋用.也就是说,渲染的次数越少,游戏的运行效率越高. 2.CCSpriteBatchNode就是cocos ...

  3. TFboy养成记 tensor shape到底怎么说

    tensor.shape 对于一位向量,其形式为[x,] 对于矩阵,二维矩阵[x,y],三维矩阵[x,y,z] 对于标量,也就是0.3*x这种0.3,表示形式为() 如果说这个矩阵是三维的,你想获得其 ...

  4. Numpy入门 - 数组排序

    本节主要讲解numpy数组的排序方法sort的应用,包括按升序排列和按降序排列. 一.按升序排列 import numpy as np arr = np.array([[3, 1, 2], [6, 4 ...

  5. Makefile中的变量和shell变量

    我们在写makefile时 多多少少会用到shell脚本, 对于变量的在shell中的使用有一些要注意的细节.让我们从一个简单的makefile来看看. 注意makefile中一定要有一个目标,且一定 ...

  6. 腾讯 AI Lab 计算机视觉中心人脸 & OCR团队近期成果介绍(3)

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:周景超 在上一期中介绍了我们团队部分已公开的国际领先的研究成果,近期我们有些新的成果和大家进一步分享. 1 人脸进展 人脸是最重要的视觉 ...

  7. springmvc 4.3,RequestParamMethodArgumentResolver无法正常解析String参数问题解决

    搭建一个新工程时,想使用最新稳当版的springmvc,所以选择了最新的版本 <dependency> <groupId>org.springframework</gro ...

  8. 【下一代核心技术DevOps】:(一)容器服务的Rancher选型

    为什么说是下一代核心技术 其实经过互联网的多次变革说起,早期的C/S架构,到后来的B/S架构,一直到现在最普遍的M/S架构,他们的背后都是技术不断的优化改进,以适应促进IT技术的发展 整体而言在过去1 ...

  9. IDEA 无法运行Junit, 报错Class not found xxxx Empty test suite.

    网上搜了一圈没找到答案, 最后才发现是因为testmodule没有把class编译到主代码编译的路径.

  10. javascript设计模式——装饰者模式

    前面的话 在程序开发中,许多时候都并不希望某个类天生就非常庞大,一次性包含许多职责.那么可以使用装饰者模式.装饰者模式可以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象.本文将 ...