logback介绍

logback是一款开源的日志框架,内核重写了,是基于log4j基础进行改良的。其官网为logback.qos.ch。logback在性能上有很大提升,拥有更多特性。

logback-core:是其它两个模块的基础模块

logback-classic:log4j的改良版本,实现了Slf4j API

logback-access:集成Servle环境时就需要logback了,可以提供Http访问的接口

日志级别

日志级别:ERROR, WARN, INFO, DEBUG or TRACE

有时候我们要获取更多的日志信息,就可以降低日志级别,然后或是更多的日志信息,eg:目前级别是info级别的,我们可以降低日志级别为debug,然后获取更多日志信息。

项目集成

maven加上对应的jar:

 <!-- logback -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>

在application.yml加上配置

server:
port: 8081
logging:
config: classpath:logback.xml
level:
com.muses.taoshop: debug
path: /data/logs

在资源文件夹下添加logback.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<configuration debug="false" scan="true">
<!-- 日志级别 -->
<springProperty scope="context" name="LOG_ROOT_LEVEL" source="logging.level.root" defaultValue="DEBUG"/>
<!-- 标识这个"STDOUT" 将会添加到这个logger -->
<springProperty scope="context" name="STDOUT" source="log.stdout" defaultValue="STDOUT"/>
<!-- 日志格式,%d:日期;%thread:线程名;%-5level:日志级别从左显示5个字符长度,列如:DEBUG;
%logger{36}:java类名,例如:com.muses.taoshop.MyTest,36表示字符长度;%msg:日志内容;%d:换行 -->
<property name="LOG_PATTERN"
value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
<!-- root日志级别-->
<property name="${LOG_ROOT_LEVEL}" value="DEBUG" />
<!-- 日志跟目录 -->
<property name="LOG_HOME" value="data/logs" />
<!-- 日志文件路径-->
<property name="LOG_DIR" value="${LOG_HOME}/%d{yyyyMMdd}" />
<!-- 日志文件名称 -->
<property name="LOG_PREFIX" value="portal" />
<!-- 日志文件编码 -->
<property name="LOG_CHARSET" value="utf-8" />
<!-- 配置日志的滚动时间,保存时间为15天-->
<property name="MAX_HISTORY" value="15" />
<!-- 文件大小,默认为10MB-->
<property name="MAX_FILE_SIZE" value="10" /> <!-- 打印到控制台 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- 格式化日志内容-->
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- 打印所有日志,保存到文件-->
<appender name="FILE_ALL"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/all_${LOG_PREFIX}.log</file>
<!-- 设置滚动策略,当日志文件大小超过${MAX_FILE_SIZE}时,新的日志内容写到新的日志文件-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 新的日志文件路径名称,%d:日期 %i:i是变量 -->
<fileNamePattern>${LOG_DIR}/all_${LOG_PREFIX}%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 保存日志15天 -->
<maxHistory>${MAX_HISTORY}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 日志文件的最大大小 -->
<maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!-- 格式日志文件内容-->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${LOG_PATTERN}</pattern>
</layout>
</appender> <!-- 打印错误日志,保存到文件-->
<appender name="FILE_ERR"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/err_${LOG_PREFIX}.log</file>
<!-- 设置滚动策略,当日志文件大小超过${MAX_FILE_SIZE}时,新的日志内容写到新的日志文件-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 新的日志文件路径名称,%d:日期 %i:i是变量 -->
<fileNamePattern>${LOG_DIR}/err_${LOG_PREFIX}%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 保存日志15天 -->
<maxHistory>${MAX_HISTORY}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 日志文件的最大大小 -->
<maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!-- 格式日志文件内容-->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${LOG_PATTERN}</pattern>
</layout>
</appender> <!-- rest template logger-->
<!--<logger name="org.springframework.web.client.RestTemplate" level="DEBUG" />-->
<!--<logger name="org.springframework" level="DEBUG" />--> <!-- jdbc-->
<!--<logger name="jdbc.sqltiming" level="DEBUG" />-->
<logger name="org.mybatis" level="DEBUG" /> <!-- zookeeper-->
<logger name="org.apache.zookeeper" level="ERROR" /> <!-- dubbo -->
<logger name="com.alibaba.dubbo.monitor" level="ERROR"/>
<logger name="com.alibaba.dubbo.remoting" level="ERROR" /> <!-- 日志输出级别 -->
<root leve="${LOG_ROOT_LEVEL}">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE_ALL" />
<appender-ref ref="FILE_ERR" />
</root> </configuration>

附录

参考资料

logback的使用和logback.xml详解

Spring Boot 中使用 LogBack 配置

SpringBoot+logback实现日志打印的更多相关文章

  1. SpringBoot系列之集成logback实现日志打印(篇二)

    SpringBoot系列之集成logback实现日志打印(篇二) 基于上篇博客SpringBoot系列之集成logback实现日志打印(篇一)之后,再写一篇博客进行补充 logback是一款开源的日志 ...

  2. SpringBoot 整合 slf4j 日志打印

    划水时间,记录一下用到的相关slf4j 日志打印,如何实现配置输出.本地保存log日志文件... 我使用的是SpringBoot框架,slf4j 类库已经包含到了 SpringBoot 框架中,所有, ...

  3. springboot logback + log4j2日志管理

    springboot的web项目中自带了日志组件: 我们看一下,springboot中找到日志组件. <dependency> <groupId>org.springframe ...

  4. 自定义springboot - starter 实现日志打印,并支持动态可插拔

    1. starter 命名规则: springboot项目有很多专一功能的starter组件,命名都是spring-boot-starter-xx,如spring-boot-starter-loggi ...

  5. springBoot项目配置日志打印管理(log4j2)

    1.修改pom文件引用log4j2相关jar包 依赖代码: <!-- log4j2 start --><!-- Spring Boot log4j2依赖 --><depe ...

  6. SpringBoot系列之日志框架使用教程

    目录 1.SpringBoot日志级别 1).日志级别简介 2).默认日志级别 3).配置日志级别 4).日志分组设置 2.SpringBoot日志格式设置 1).默认格式原理简介 2).默认日志格式 ...

  7. SpringBoot使用logback输出日志并打印sql信息 --经典---

    最近在学习springboot以及一些springcloud插件的使用,其中发现默认的配置并不能打印一些有用的日志,所以需要自定义一些日志输出方式以便于查看日志排查问题,目前只整理了两种使用方式,如下 ...

  8. springboot aop + logback + 统一异常处理 打印日志

    1.src/resources路径下新建logback.xml 控制台彩色日志打印 info日志和异常日志分不同文件存储 每天自动生成日志 结合myibatis方便日志打印(debug模式) < ...

  9. springboot+logback日志输出企业实践(上)

    目录 1.引言 2.logback简介 3. springboot默认日志框架-logback 3.1 springboot示例工程搭建 3.2 日志输出与基本配置 3.2.1 日志默认输出 3.2. ...

随机推荐

  1. java之数据库相关

    这篇还是在回顾知识.主要是关于java连接Sqlserver2012数据库的一些方式记录,以便以后查询. 十一之内复习完这些知识就可以新学Hibernate啦(*^▽^*) 1.普通方式 注意,在连接 ...

  2. LINUX中printf与echo的区别

    (1)首先echo是回显,即代表回车显示,是自带换行的:而printf只是打印出来,没有换行(2)echo只是回显没有变量替换功能:printf是有的举例:假如我们定义好变量a='hello worl ...

  3. Angular中不同的组件间传值与通信的方法

    主要分为父子组件和非父子组件部分. 父子组件间参数与通讯方法 使用事件通信(EventEmitter,@Output): 场景:可以在父子组件之间进行通信,一般使用在子组件传递消息给父组件: 步骤: ...

  4. ASCII, Unicode, UTF-8, 8进制, 16进制等各种编码学习理解笔记

    字符编码的发展历史 Unicode和UTF-8有何区别? 在这个问题下的于洋的最高票回答中,比较完整地介绍了字符编码的发展历史,为了便于记忆,再次简要概括一番. 一个字节:最初一个字节的标准是混乱的, ...

  5. vim编辑器中没有高亮显示,退格键不能使用的问题

    在~/.vimrc下添加如下内容,立即生效

  6. 通过PRINT过程制作报表

    通过PRINT过程制作报表 PRINT过程是SAS中用于输出数据集内容的最简单常用的过程,它可将选择的观测和字段以简单的矩形表格形式输出. 1.1 制作简单报表 使用PRINT过程最简单的语法形式如下 ...

  7. ceph删除pool提示(you must first set the mon_allow_pool_delete config option to true)解决办法

    现象: 1.在mon节点打开/etc/ceph/ceph.conf,增加以下 2.重启ceph-mon systemctl restart ceph-mon.target 3.删除pool [root ...

  8. 获取mp3文件的采样率

    /** * 获取mp3文件的采样率 * @param filefullname 文件完整路径 * @return 采样率 */public int getMp3SampleRate(String fi ...

  9. mysql无密码登陆

    mysql登陆不上或者密码忘记可以尝试一下无密码登陆 以下一波神操作!! 首先关闭数据库服务(数据库在Centos7版本以上或者Redhat版本上被改名为mariadb) systemctl stop ...

  10. 【慕课网实战】六、以慕课网日志分析为例 进入大数据 Spark SQL 的世界

    DataFrame它不是Spark SQL提出的,而是早起在R.Pandas语言就已经有了的.   A Dataset is a distributed collection of data:分布式的 ...