编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

spring boot logback 多环境打印日志

wxchong 2024-07-20 08:23:14 开源技术 13 ℃ 0 评论

1.修改application.properties配置文件

#日志配置文件
logging.config=classpath:logback-spring.xml
#日志全局等级(自定义)
log.level=INFO
#日志保存路径(自定义)
log.path=C:/BIN_WNMP/nginx/html/taskservice/logs
#单个日志大小(自定义)
log.MaxFileSize=10MB
#日志文件保留天数(自定义)
log.MaxHistory=7

不同的环境我们可以定义不同log.level和log.path,一般开发和测试我们希望日志等级为INFO,而生产我们仅希望记录WARN以上级别的日志

2.logback-spring.xml放在resources下面

<?xml version="1.0" encoding="UTF-8"?>

<configuration scan="true" scanPeriod="60 seconds" debug="false">

 <!--名称-->
 <contextName>logback</contextName>

 <!--读取application.properties配置中心属性-->
 <springProperty scope="context" name="log.path" source="log.path"/>
 <springProperty scope="context" name="log.level" source="log.level"/>
 <springProperty scope="context" name="log.MaxHistory" source="log.MaxHistory"/>
 <springProperty scope="context" name="log.MaxFileSize" source="log.MaxFileSize"/>

 <!--定义日志文件的存储地址勿在LogBack的配置中使用相对路径-->
 <property name="LOG_HOME" value="${log.path}"/>

 <!--日志格式:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
 <property name="LOG_PATTERN_STYLE" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/>

 <!--控制台输出-->
 <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
 <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
 <!--日志格式-->
 <pattern>${LOG_PATTERN_STYLE}</pattern>
 </encoder>
 </appender>

 <!--日志文件-->
 <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

 <!--日志文件输出的文件名-->
 <FileNamePattern>${LOG_HOME}/logback-%d{yyyy-MM-dd}.log</FileNamePattern>
 <!--日志文件保留天数-->
 <MaxHistory>${log.MaxHistory}</MaxHistory>
 </rollingPolicy>
 <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
 <!--日志格式-->
 <pattern>${LOG_PATTERN_STYLE}</pattern>
 </encoder>
 <!--日志文件最大的大小-->
 <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
 <MaxFileSize>${log.MaxFileSize}</MaxFileSize>
 </triggeringPolicy>
 </appender>

 <!--开发环境-->
 <springProfile name="dev">
 <!--日志输出级别-->
 <root level="${log.level}">
 <appender-ref ref="CONSOLE"/>
 <appender-ref ref="FILE" />
 </root>
 <!--开发环境我们希望打印sql-->
 <logger name="com.oranger.taskservice.mapper" level="DEBUG" />
 </springProfile>

 <!--测试环境-->
 <springProfile name="test">
 <!--日志输出级别-->
 <root level="${log.level}">
 <appender-ref ref="CONSOLE"/>
 <appender-ref ref="FILE" />
 </root>
 </springProfile>

 <!--生产环境-->
 <springProfile name="prod">
 <!--日志输出级别-->
 <root level="${log.level}">
 <appender-ref ref="CONSOLE"/>
 <appender-ref ref="FILE" />
 </root>
 </springProfile>

</configuration>

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表