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. CSS网页布局

    注:优化样式表:增加css样式表的可读性 减伤样式重复 一.主要内容 1.布局分类;131   121 2.display属性排版 3.float属性排版(横向多列布局) 4.防止父类盒子塌陷 二.标 ...

  2. 01-SpringMVC 原理

    说明:所有代码调式的环境:开发环境idea,jdk7,tomcat8.5.27,数据库MySQL5.1,spring3.2 SpringMVC 1.什么是SpringMVC? springmvc是sp ...

  3. skyline开发——加载Shapefile文件

    //1)获取道路的GroupID string dlId = ptm.FindGroupByName("道路"); IFeatureLayer66 featureLayer = n ...

  4. 获取当前最顶层的VC

    #pragma mark -  获取当前最顶层的ViewController - (UIViewController*)topVC:(UIViewController*)VC { if([VC isK ...

  5. asp.net core web 项目附加进程调试

    之前asp.net web项目在部署IIS站点的时候可以直接选择项目目录,不用发布,然后附加进程的时候,找到w3wp.exe开头的进程,再根据用户名找到要附加的进程,就可以附加进程调试了.但asp.n ...

  6. 前端js收藏

    1 爱心特效 <script type="text/javascript"> (function(window,document,undefined){ var hea ...

  7. C#写入Oracle 中文乱码问题

    这个问题是我刚踏入工作觉得最坑的一个问题,找了很多方法.也问过不少人,但还是没能解决,偶然间返现了新大陆.... 具体问题描述是这样的: 我可以读取Oracle数据库中已有的中文内容,并能正确显示(O ...

  8. 区域检测算法-MSERs

    区域检测算法-MSERs:最大稳定极值区域 参考书籍——<图像局部不变性特征与描述>王永明.王贵锦著 MSER最大极值稳定区域的提取步骤:1.像素点排序   2.极值区域生成   3.稳定 ...

  9. Python——我所学习的turtle函数库

    1基础概念 1.1 画布(canvas) 画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置. 常用的画布方法有两个:screensize()和setup(). (1)tur ...

  10. 小白的CTF学习之路6——阶段测评

    刚才考了自己一次,下面我把题和答案放到下面 CPU中不含有以下选项中的  C A:     运算器 B:      寄存器 C:     内存 D:     时钟 这是一道送分题,CPU包含以下几种原 ...