项目中统一日志文件配置
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>
项目中统一日志文件配置相关推荐
- Spring MVC中 log4j日志文件配置相对路径
log4j和web.xml配置webAppRootKey 的问题 1 在web.xml配置 <context-param> <param-name>webAppRootKe ...
- 在Tomcat 与weblogic 中的 日志(log4j) 配置系列三(log文件的存放路径)
前言 前面一直在说,如何读取到log4j 的配置文件 log4j.properties. 接下来的探讨的是: log4j 里配置产生的log 文件的路径如何设置. tomcat 还好.拿复杂点的 we ...
- springboot项目输入打印日志文件到本地
springboot项目输入打印日志文件到本地 pom.xml中添加jar包: <dependency><groupId>ch.qos.logback</groupId& ...
- eclipse mysql Xml配置_mysql8.0在eclipse中通过xml文件配置数据库连接池
mysql8.0在eclipse中通过xml文件配置数据库连接池 1.关于Mysql8.0 2.数据库连接池(DBCP) 3.准备工作 4.配置context.xml 5.配置web.xml 6.调用 ...
- Git的简单使用以及在Django中有关日志文件的忽略
Git的简单使用以及在Django中有关日志文件的忽略 1.三个程序简介 2.Git配置 2.1Git查看配置 2.2git查看本地系统配置 2.3git查看用户配置的 2.4git配置用户名 2.5 ...
- 在Tomcat 与weblogic 中的 日志(log4j) 配置系列二(weblogic 应用程序使用log4j)
前言 在Tomcat 与weblogic 中的 日志(log4j) 配置系列一 在系列一 中, 有一个问题一直没有解决,就是部署到weblogic 中应用程序如何通过log4j写日志到文件中? 这里仅 ...
- 微服务中统一日志-ELK
微服务中统一日志-ELK 一.简介 1.介绍 2.流程 3.要求 4.下载地址 二.安装Elasticsearch 1.创建文件存放目录 2.进入目录 3.下载 4.解压 5.修改配置 5.1.介绍 ...
- c 自动生成html文件,webpack4系列教程(三):自动生成项目中的HTML文件
1. webpack中的CommonJS和ES Mudule 规范 1.1 CommonJs规范 CommonJs规范的出发点:JS没有模块系统.标准库较少.缺乏包管理工具:为了让JS可以在任何地方运 ...
- idea新建scala文件_IDEA maven项目中新建.scala文件
本文首发于我的博客[IDEA maven项目中新建.scala文件] 分为三步 第一步.IDEA中安装scala插件 1.搜索安装 File-Sittings-Plugins-搜索安装scala 2. ...
最新文章
- linux shell脚本 引入外部shell文件
- (iOS)sqlcipher和FMDB的使用总结(原创)
- vim使用帮助命令的方法
- Android内存优化2—使用软引用和弱引用
- 主域控宕机无法恢复后,如何配置辅助域控继续工作
- 介绍针对企业级Flex开发的开源项目FlexibleShare
- leetcode79. 单词搜索(回溯算法)
- python两个线程交替打印_三线程按顺序交替打印ABC的四种方法
- PowerShell+you-get批量下载B站视频
- 【转】世界顶级人工智能会议的总结
- UVa 11991 一道简单题
- python pytz模块_python pytz
- Git 学习笔记——管理员篇
- word为什么前面空白但是字上不去?
- 图片太大上传不了怎么缩小?jpg图片压缩大小的方法
- 视频加密中令人头疼的录屏行为怎么防范?
- 异常处理之Validates struts.xml files for syntactic and reference errors.
- CLOB 和 BLOB
- 【整理】X86常用的汇编指令及寄存器
- python量化策略——Fama-French三因子模型(回归获取alpha)阿尔法α策略。