1、统一日志处理的目的:

  • 将日志记录在文件中,方便运维和开发做错误排查
  • 文件日志需要做滚动输出(输出到更多的日志文件中),避免单日志体积过大,拖垮服务器
  • 可以方便的在开发环境和生产环境等环境中切换输出方式,例如在控制台和日志文件中灵活输出

2、配置日志级别

日志记录器(Logger)的行为是分等级的。如下表所示:

分为:FATAL、ERROR、WARN、INFO、DEBUG

默认情况下,spring boot从控制台打印出来的日志级别只有INFO及以上级别,可以配置日志级别

spring boot内部使用Logback作为日志实现的框架。

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds"><!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 --><!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true --><!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 --><!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 --><contextName>logback</contextName><!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 --><property name="log.path" value="D:/project/cmn/log" /><!-- 彩色日志 --><!-- 配置格式变量:CONSOLE_LOG_PATTERN 彩色日志格式 --><!-- magenta:洋红 --><!-- boldMagenta:粗红--><!-- cyan:青色 --><!-- white:白色 --><!-- magenta:洋红 --><property name="CONSOLE_LOG_PATTERN"value="%boldMagenta(%date{yyyy-MM-dd HH:mm:ss}) %highlight(%-5level) %thread %magenta(%file:%line) %green(%logger) %msg%n"/><property name="LOG_CHARSET" value="UTF-8" /><!--输出到控制台--><!--appender:定义日志记录器name:定义日志记录器的名字class:日志记录器的实现类ch.qos.logback.core.ConsoleAppender:将日志记录在控制台上--><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息--><!-- 例如:如果此处配置了INFO级别,则后面其他位置即使配置了DEBUG级别的日志,也不会被输出 --><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter><encoder><pattern>${CONSOLE_LOG_PATTERN}</pattern><!-- 设置字符集 --><charset>${LOG_CHARSET}</charset></encoder></appender><!--输出到文件--><!-- 时间滚动输出 level为 INFO 日志 --><!--ch.qos.logback.core.rolling.RollingFileAppender:将日志记录在文件中,并且文件是滚动的--><appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><file>${log.path}/log_info.log</file><!--日志文件输出格式--><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>${LOG_CHARSET}</charset></encoder><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 每天日志归档路径以及格式 --><fileNamePattern>${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><!--日志文件保留天数--><maxHistory>15</maxHistory></rollingPolicy><!-- 此日志文件只记录info级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>INFO</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 时间滚动输出 level为 WARN 日志 --><appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><file>${log.path}/log_warn.log</file><!--日志文件输出格式--><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>${LOG_CHARSET}</charset> <!-- 此处设置字符集 --></encoder><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><!--日志文件保留天数--><maxHistory>15</maxHistory></rollingPolicy><!-- 此日志文件只记录warn级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>warn</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 时间滚动输出 level为 ERROR 日志 --><appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><file>${log.path}/log_error.log</file><!--日志文件输出格式--><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>${LOG_CHARSET}</charset> <!-- 此处设置字符集 --></encoder><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><!--日志文件保留天数--><maxHistory>15</maxHistory></rollingPolicy><!-- 此日志文件只记录ERROR级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!--开发环境:打印控制台--><!--springProfile:定义日志适配的环境name:环境的名字,需要和application.properties配置文件中定义的spring.profiles.active的值匹配如果spring.profiles.active=dev,那么name=“dev”这个节点生效--><springProfile name="dev"><!--可以输出项目中的日志--><logger name="com.atguigu.yygh" level="INFO" /><!--root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,默认是DEBUG可以包含零个或多个appender元素。--><root level="INFO"><appender-ref ref="CONSOLE" /><appender-ref ref="INFO_FILE" /><appender-ref ref="WARN_FILE" /><appender-ref ref="ERROR_FILE" /></root></springProfile><!--生产环境:输出到文件--><springProfile name="prod"><logger name="com.atguigu.yygh" level="WARN" /><root level="WARN"><appender-ref ref="CONSOLE" /><appender-ref ref="ERROR_FILE" /><appender-ref ref="WARN_FILE" /></root></springProfile></configuration>

项目中统一日志文件配置相关推荐

  1. Spring MVC中 log4j日志文件配置相对路径

    log4j和web.xml配置webAppRootKey 的问题 1 在web.xml配置 <context-param>   <param-name>webAppRootKe ...

  2. 在Tomcat 与weblogic 中的 日志(log4j) 配置系列三(log文件的存放路径)

    前言 前面一直在说,如何读取到log4j 的配置文件 log4j.properties. 接下来的探讨的是: log4j 里配置产生的log 文件的路径如何设置. tomcat 还好.拿复杂点的 we ...

  3. springboot项目输入打印日志文件到本地

    springboot项目输入打印日志文件到本地 pom.xml中添加jar包: <dependency><groupId>ch.qos.logback</groupId& ...

  4. eclipse mysql Xml配置_mysql8.0在eclipse中通过xml文件配置数据库连接池

    mysql8.0在eclipse中通过xml文件配置数据库连接池 1.关于Mysql8.0 2.数据库连接池(DBCP) 3.准备工作 4.配置context.xml 5.配置web.xml 6.调用 ...

  5. Git的简单使用以及在Django中有关日志文件的忽略

    Git的简单使用以及在Django中有关日志文件的忽略 1.三个程序简介 2.Git配置 2.1Git查看配置 2.2git查看本地系统配置 2.3git查看用户配置的 2.4git配置用户名 2.5 ...

  6. 在Tomcat 与weblogic 中的 日志(log4j) 配置系列二(weblogic 应用程序使用log4j)

    前言 在Tomcat 与weblogic 中的 日志(log4j) 配置系列一 在系列一 中, 有一个问题一直没有解决,就是部署到weblogic 中应用程序如何通过log4j写日志到文件中? 这里仅 ...

  7. 微服务中统一日志-ELK

    微服务中统一日志-ELK 一.简介 1.介绍 2.流程 3.要求 4.下载地址 二.安装Elasticsearch 1.创建文件存放目录 2.进入目录 3.下载 4.解压 5.修改配置 5.1.介绍 ...

  8. c 自动生成html文件,webpack4系列教程(三):自动生成项目中的HTML文件

    1. webpack中的CommonJS和ES Mudule 规范 1.1 CommonJs规范 CommonJs规范的出发点:JS没有模块系统.标准库较少.缺乏包管理工具:为了让JS可以在任何地方运 ...

  9. idea新建scala文件_IDEA maven项目中新建.scala文件

    本文首发于我的博客[IDEA maven项目中新建.scala文件] 分为三步 第一步.IDEA中安装scala插件 1.搜索安装 File-Sittings-Plugins-搜索安装scala 2. ...

最新文章

  1. linux shell脚本 引入外部shell文件
  2. (iOS)sqlcipher和FMDB的使用总结(原创)
  3. vim使用帮助命令的方法
  4. Android内存优化2—使用软引用和弱引用
  5. 主域控宕机无法恢复后,如何配置辅助域控继续工作
  6. 介绍针对企业级Flex开发的开源项目FlexibleShare
  7. leetcode79. 单词搜索(回溯算法)
  8. python两个线程交替打印_三线程按顺序交替打印ABC的四种方法
  9. PowerShell+you-get批量下载B站视频
  10. 【转】世界顶级人工智能会议的总结
  11. UVa 11991 一道简单题
  12. python pytz模块_python pytz
  13. Git 学习笔记——管理员篇
  14. word为什么前面空白但是字上不去?
  15. 图片太大上传不了怎么缩小?jpg图片压缩大小的方法
  16. 视频加密中令人头疼的录屏行为怎么防范?
  17. 异常处理之Validates struts.xml files for syntactic and reference errors.
  18. CLOB 和 BLOB
  19. 【整理】X86常用的汇编指令及寄存器
  20. python量化策略——Fama-French三因子模型(回归获取alpha)阿尔法α策略。

热门文章

  1. 【LaTeX】表格调整行高、列宽、合并显示等操作
  2. 重大问题思考-2021年总结
  3. mongodb的分组求和(使用aggregate方法)
  4. 从少儿编程讲讲开发行业的大趋势
  5. 第527篇-Prism学习系列3_Modularity
  6. 盘点各大互联网公司2017中秋月饼设计,你最喜欢哪一个?
  7. 达梦数据库安装(Linux下的命令行方式)_yxy
  8. QQ邮箱疯狂的附件:别人笑我太疯癫 我笑别人看不穿
  9. 《美团机器学习实践》学习笔记:机器学习中的模型评价指标(二)——回归模型评估
  10. 济南大雨,银座亲历(转载)