logback

logback出自log4j的作者,性能和功能相比log4j作出了一些改进,而配置方法和log4j类似,是spring boot的默认日志组件。在application.properties文件中可以进行一些简单的日志配置,参考第五篇。如果要作一些更详细的配置,需要在resources目录下配置logback-spring.xml

logback-spring.xml

spring boot官方建议使用logback-spring.xml这个文件名来配置默认的logback日志。关于logback详细知识可以查官方文档,这里提供一个比较实用的配置:在控制台输出INFO级别日志,另外将warn警告日志和error错误日志分别保存到不同目录文件,具体看注释
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <!-- appender是配置输出终端,ConsoleAppender是控制台,name是自定义名 -->
  4. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  5. <encoder>
  6. <!-- 配置日志格式,这是一个比较通用的格式 -->
  7. <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
  8. </encoder>
  9. </appender>
  10.  
  11. <!-- 输出终端是滚动文件 -->
  12. <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
  13. <!-- 基于时间滚动,就是每天的日志输出到不同的文件 -->
  14. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  15. <!-- 输出日志的目录文件名,window中默认分区为当前程序的硬盘分区,%d{yyyy-MM-dd}是当前日期 -->
  16. <fileNamePattern>/log/warn/warn.%d{yyyy-MM-dd}.log</fileNamePattern>
  17. <!-- 最大保存99个文件,超出的历史文件会被删除 -->
  18. <maxHistory>99</maxHistory>
  19. </rollingPolicy>
  20. <!-- 按照日志级别进行过滤 -->
  21. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  22. <!-- 只收集WARN级别的日志,其他高级别和低级别的日志都放弃 -->
  23. <level>WARN</level>
  24. <onMatch>ACCEPT</onMatch>
  25. <onMismatch>DENY</onMismatch>
  26. </filter>
  27. <encoder>
  28. <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
  29. </encoder>
  30. </appender>
  31.  
  32. <!-- 除了filter,其他 配置和上面一样, 只是name和文件路径不同-->
  33. <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
  34. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  35. <fileNamePattern>/log/error/error.%d{yyyy-MM-dd}.log</fileNamePattern>
  36. <maxHistory>99</maxHistory>
  37. </rollingPolicy>
  38. <!-- 阈值过滤器 -->
  39. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  40. <!-- 收集ERROR及ERROR以上级别的日志 -->
  41. <level>ERROR</level>
  42. </filter>
  43. <encoder>
  44. <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
  45. </encoder>
  46. </appender>
  47.  
  48. <!-- root是根日志打印器,只有一个,负责整个系统的日志输出 -->
  49. <root level="INFO">
  50. <!-- 将上面三个输出终端配置到根打印器,将对整个系统 生效。 -->
  51. <appender-ref ref="STDOUT" />
  52. <appender-ref ref="WARN" />
  53. <appender-ref ref="ERROR" />
  54. </root>
  55.  
  56. <!-- logger是root的子打印器,可以有多个,输出name配置的包中的日志。 -->
  57. <!-- hello.dao是我的mybatis映射dao的包名,设置为debug可以打印mybatis的sql语句 -->
  58. <logger name="hello.dao" level="DEBUG" />
  59. </configuration>

运行后结果是这样的,E盘是我的程序当前分区,会自动生成log目录如下,会分别保存error和warn级别的日志

level日志级别

在上面配置中的leven参数,主要使用了四种,,级别从低到高分别为debug,info,warn,error,当设置某一级别日志时,比他低级的日志不会输出。 

debug:调试,从名字可以看出其作用。程序中报错无法解决时,使用调试来查看更多错误信息。在mybatis中使用这种日志才会输出sql语句。  debug的输出量太大,而且不懂源码的人很多都看不懂,还有很多没什么实际作用的日志信息刷屏,只适合报异常程序的调试。

info:信息,信息量比debug少很多,只会输出一些重要的信息,适合开发时使用。

warn:警告,通常是可以修复的,不修复也不一定会引发异常,有时候是一些提示信息,但是比info信息更加重要

error:错误,很明显,就是程序异常

access访问日志

tomcat中默认是有access访问日志的,用于记录访问者的IP,不过在spring boot中这个日志默认是关闭的。如果你的服务器结构中有nginx类的http服务器,access日志应该是在nginx中配置的。而tomcat这样的后台服务器只需要记录后台日志,不需要管access日志。如果想在spring boot中打开access日志,可以在application.properties中配置

  1. #配置tomcat工作目录,为当前分区的tomcat目录
  2. server.tomcat.basedir=/tomcat
  3. #开启accesslog,会记录到上面的目录下
  4. server.tomcat.accesslog.enabled=true

spring boot(13)-logback和access日志的更多相关文章

  1. Spring Boot (16) logback和access日志

    Spring Boot 内部采用的是Commons Logging进行日志记录,但是在底层为Java Util Logging.Log4J2.Logback等日志框架提供了默认配置. logback ...

  2. spring boot打开tomcat的access日志

    spring boot虽说内置了tomcat,但打出来的是jar包而非war包,更没有access日志,那么如何打开access日志呢?只需在application.properties中加入相关配置 ...

  3. Spring Boot与Logback的运用(自定义异常+AOP)

    在开发以及调试过程中,程序员对日志的需求是非常大的,出了什么问题,都要通过日志去进行排查,但是如果日志不清或者杂乱无章,则不利于维护 这边就比较详细的列举几种类型的日志,供大家参考 首先明白logba ...

  4. spring boot 中logback多环境配置

    spring boot 配置logback spring boot自带了log打印功能,使用的是Commons logging 具体可以参考spring boot log 因此,我们只需要在resou ...

  5. Spring Boot 的Logback

    Spring Boot 默认使用Logback记录日志 Spring Boot starter 都会默认引入spring-boot-starter-logging,不需要再引入 日志级别从高到低:TR ...

  6. 剑指架构师系列-spring boot的logback日志记录

    Spring Boot集成了Logback日志系统. Logback的核心对象主要有3个:Logger.Appender.Layout 1.Logback Logger:日志的记录器 主要用于存放日志 ...

  7. Spring Boot之logback日志最佳实践

    一.Spring Boot日志介绍 Spring Boot对所有内部日志记录使用了Commons Logging,但是底层日志实现是开放的.为Java Util日志记录.Log4J2和Logback提 ...

  8. 基于Spring Boot的Logback日志轮转配置

    在生产环境下,日志是最好的问题调试和跟踪方法,因此日志的地位是十分重要的.我们平时经常使用的log4j,slf4j,logback等等,他们的配置上大同小异.这里就结合Spring Boot配置一下L ...

  9. spring boot 使用logback日志系统的详细说明

    springboot按照profile进行打印日志 log4j logback slf4j区别? 首先谈到日志,我们可能听过log4j logback slf4j这三个名词,那么它们之间的关系是怎么样 ...

随机推荐

  1. 忘记mysql密码的解决办法--针对windows系统

    C:\Users\Administrator>cd C:\Program Files\MySQL\MySQL Server 5.5\bin C:\Program Files\MySQL\MySQ ...

  2. Oracle 相关查询

    --创建用户 create user zzg identified by zzg123; --修改用户的密码 alter user zzg identified by unis; --所有用户所在的表 ...

  3. 在Windows家里杀死一个偷端口的家伙

    今天,写项目了,写了好多代码,然后运行成功,但是返回的信息啥的还有代码整体的逻辑有点问题,于是就review了代码,改了些东西,然后再次启动服务,但是,问题来了:Address already in ...

  4. 机器学习--降维算法:PCA主成分分析

    引言 当面对的数据被抽象为一组向量,那么有必要研究一些向量的数学性质.而这些数学性质将成为PCA的理论基础. 理论描述 向量运算即:内积.首先,定义两个维数相同的向量的内积为: (a1,a2,⋯,an ...

  5. n-grama

    一.N-Gram的原理(这个词出现在句子中出现的概率) N-Gram是基于一个假设:第n个词出现与前n-1个词相关,而与其他任何词不相关.(这也是隐马尔可夫当中的假设.)整个句子出现的概率就等于各个词 ...

  6. Node.js函数

    Node.js 函数 在JavaScript中,一个函数可以作为另一个函数的参数.我们可以先定义一个函数,然后传递,也可以在传递参数的地方直接定义函数. Node.js中函数的使用与Javascrip ...

  7. 【JavaScript 从零开始】 数字 文本 包装对象

    JavaScript中的算术运算 JavaScript 还自称更加复杂的算术运算,这些复杂的运算通过作为Math对象的属性定义的函数和常量来实现: Math.pow(2,53) //=>9007 ...

  8. UNIX高手应该保持的习惯

    UNIX 高手的 10 个习惯 克服不良的 UNIX 使用模式 采用 10 个能够提高您的 UNIX® 命令行效率的好习惯——并在此过程中摆脱不良的使用模式.本文循序渐进地指导您学习几项用于命令行操作 ...

  9. Unix 高手的10个好习惯

    引言 当您经常使用某个系统时,往往会陷入某种固定的使用模式.有时,您没有养成以尽可能最好的方式做事的习惯.有时,您的不良习惯甚至会导致出现混乱.纠正此类缺点的最佳方法之一,就是有意识地采用抵制这些坏习 ...

  10. BootStrap-select 插件的使用

    这是一款下拉框多选的插件,非常的抢到,什么样式都是有的:首先去参看一下官网的信息,详细介绍是怎么使用的: 相关官网网址:  https://silviomoreto.github.io/bootstr ...