发布于2021-06-14 09:31 阅读(941) 评论(0) 点赞(7) 收藏(1)
spring boot内部使用Logback作为日志实现的框架。
Logback和log4j非常相似,如果你对log4j很熟悉,那对logback很快就会得心应手。
logback相对于log4j的一些优点:https://blog.csdn.net/caisini_vc/article/details/48551287
删除application.properties中的日志配置,这里包括所有的日志打印例如 logging.level.root和mybatis的日志mybatis-plus.configuration.log-impl等都要删除
然后在resources目录下创建logback-spring.xml文件
将以下内容复制进去
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <!-- 尽量别用绝对路径,如果带参数不同容器路径解释可能不同,以下配置参数在pom.xml里 -->
- <property name="log.root.level" value="INFO"/> <!-- 日志级别 -->
- <property name="log.other.level" value="INFO"/> <!-- 其他日志级别 -->
- <property name="log.base"
- value="logs"/> <!-- 日志路径,这里是相对路径,web项目eclipse下会输出到eclipse的安装目录下,如果部署到linux上的tomcat下,会输出到tomcat/bin目录 下 -->
- <property name="log.moduleName" value="stuHealth"/> <!-- 模块名称, 影响日志配置名,日志文件名 -->
- <property name="log.max.size" value="20MB"/> <!-- 日志文件大小 -->
-
- <!--控制台输出 -->
- <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <pattern>%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger.%method:%L) - %cyan(%msg%n)
- </pattern>
- </encoder>
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>debug</level>
- </filter>
- </appender>
-
- <!-- info文件输出 -->
- <appender name="info" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <File>${log.base}/${log.moduleName}-info.log
- </File><!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->
- <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <FileNamePattern>${log.base}/archive/${log.moduleName}-info-%d{yyyy-MM-dd}.%i.log
- </FileNamePattern>
- <!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${log.max.size}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- </rollingPolicy>
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>INFO</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <!-- 日志输出的文件的格式 -->
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</pattern>
- </layout>
- </appender>
-
- <!-- debug文件输出 -->
- <appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <File>${log.base}/${log.moduleName}-debug.log
- </File><!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->
- <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <FileNamePattern>${log.base}/archive/${log.moduleName}-debug-%d{yyyy-MM-dd}.%i.log
- </FileNamePattern>
- <!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${log.max.size}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- </rollingPolicy>
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>DEBUG</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <!-- 日志输出的文件的格式 -->
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</pattern>
- </layout>
- </appender>
-
- <!-- warning文件输出 -->
- <appender name="warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <File>${log.base}/${log.moduleName}-warn.log
- </File><!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->
- <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <FileNamePattern>${log.base}/archive/${log.moduleName}-warn-%d{yyyy-MM-dd}.%i.log
- </FileNamePattern>
- <!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${log.max.size}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- </rollingPolicy>
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>WARN</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <!-- 日志输出的文件的格式 -->
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</pattern>
- </layout>
- </appender>
-
- <!-- error文件输出 -->
- <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <File>${log.base}/${log.moduleName}-error.log
- </File><!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->
- <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <FileNamePattern>${log.base}/archive/${log.moduleName}-error-%d{yyyy-MM-dd}.%i.log
- </FileNamePattern>
- <!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${log.max.size}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- </rollingPolicy>
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>ERROR</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <!-- 日志输出的文件的格式 -->
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</pattern>
- </layout>
- </appender>
-
- <!-- error文件输出 -->
- <appender name="all" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <File>${log.base}/${log.moduleName}-all.log
- </File><!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->
- <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <FileNamePattern>${log.base}/archive/${log.moduleName}-all-%d{yyyy-MM-dd}.%i.log
- </FileNamePattern>
- <!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${log.max.size}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- </rollingPolicy>
- <!-- 日志输出的文件的格式 -->
- <layout class="ch.qos.logback.classic.PatternLayout">
- <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</pattern>
- </layout>
- </appender>
-
- <!-- 为某个包下的所有类的指定Appender 这里也可以指定类名称例如:com.aa.bb.ClassName -->
- <logger name="com.study.stuhealth" additivity="false">
- <level value="debug"/>
- <appender-ref ref="stdout"/>
- <appender-ref ref="info"/>
- <appender-ref ref="debug"/>
- <appender-ref ref="warn"/>
- <appender-ref ref="error"/>
- <appender-ref ref="all"/>
- </logger>
- <!-- root将级别为“DEBUG”及大于“DEBUG”的日志信息交给已经配置好的名为“Console”的appender处理,“Console”appender将信息打印到Console -->
- <root level="info">
- <appender-ref ref="stdout"/> <!-- 标识这个appender将会添加到这个logger -->
- <appender-ref ref="info"/>
- <appender-ref ref="debug"/>
- <appender-ref ref="warn"/>
- <appender-ref ref="error"/>
- <appender-ref ref="all"/>
- </root>
- </configuration>
将这个地方改成自己的项目名
运行后日志文件结构图
我们一般要将错误信息输出到error错误文件中
我们就要在我们的统一异常处理类上添加@Slf4j注解(统一处理类可以看我文章)
和异常输出语句log.error("统一异常处理:", exception);
控制台上的报错信息就会同步到错误日志文件中。
原文链接:https://blog.csdn.net/qq_42374233/article/details/117803870
作者:你不要惹我
链接:http://www.javaheidong.com/blog/article/222695/e4fec83bd09e3bc837e7/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!