项目中使用了logback.xml配置,
具体详细解释可以看如下解释:
<?xml version="1.0" encoding="UTF-8" ?>
<!--1、根节点<configuration>,包含下面三个属性:-->
<!--scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。-->
<!--scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。-->
<!--debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。-->
<configuration scan="true" scanPeriod="30 seconds">
<!--子节点<property>:用来定义变量值,它有两个属性name和value,通过<property>定义的值会被插入到logger上下文中,可以使“${}”来使用变量。-->
<!--name: 变量的名称-->
<!--value: 的值时变量定义的值-->
<property name="z_app" value="app"/>
<property name="SQL_LEVEL" value="INFO"/>
<property name="SERVICE_LEVEL" value="ERROR"/>
<property name="RPC_LEVEL" value="ERROR"/>
<property name="BOOT_LEVEL" value="DEBUG"/>
<property name="BUF_LEVEL" value="DEBUG"/>
<property name="SQL_LOG_FILE" value="${ZSMART_HOME}/logs/${z_app}/${z_app}Sql.log"/>
<property name="SERVICE_LOG_FILE" value="${ZSMART_HOME}/logs/${z_app}/${z_app}Service.log"/>
<property name="RPC_LOG_FILE" value="${ZSMART_HOME}/logs/${z_app}/${z_app}RPC.log"/>
<property name="BOOT_LOG_FILE" value="${ZSMART_HOME}/logs/${z_app}/${z_app}Boot.log"/>
<property name="BUF_LOG_FILE" value="${ZSMART_HOME}/logs/${z_app}/${z_app}Buf.log"/>
<property name="TRACE_LOG_FILE" value="${ZSMART_HOME}/logs/${z_app}/${z_app}Trace.log"/>
<include resource="log/logback-base.xml" />
<property name="ROOT_LEVEL" value="INFO"/>
<property name="APP_LOG_FILE" value="${ZSMART_HOME}/logs/${z_app}/${z_app}.log"/>
<!--5、子节点<appender>:负责写日志的组件,它有两个必要属性name和class。name指定appender名称,class指定appender的全限定名-->
<appender name="APP_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--<encoder>:对日志进行格式化。(具体参数稍后讲解 )-->
<encoder>
<charset>utf-8</charset>
<pattern>${PATTERN}</pattern>
</encoder>
<!--<prudent>:如果是 true,日志会被安全的写入文件,即使其他的FileAppender也在向此文件做写入操作,效率低,默认是 false。-->
<prudent>false</prudent>
<!--<append>:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。-->
<append>true</append>
<!--<file>:被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值。-->
<file>${APP_LOG_FILE}</file>
<!--<rollingPolicy>:当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名。属性class定义具体的滚动策略类-->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--<fileNamePattern>:必要节点,包含文件名及“%d”转换符,“%d”可以包含一个java.text.SimpleDateFormat指定的时间格式,如:%d{yyyy-MM}。-->
<fileNamePattern>${APP_LOG_FILE}.%d{yyyy-MM-dd}-%i.gz</fileNamePattern>
<!--<maxFileSize>:这是活动文件的大小,默认值是10MB。-->
<maxFileSize>10MB</maxFileSize>
<!--可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。假设设置每个月滚动,且<maxHistory>是6,则只保存最近6个月的文件,删除之前的旧文件。注意,删除旧文件是,那些为了归档而创建的目录也会被删除。-->
<maxHistory>15</maxHistory>
<totalSizeCap>200MB</totalSizeCap>
</rollingPolicy>
</appender>
<!--子节点<loger>:用来设置某一个包或具体的某一个类的日志打印级别、以及指定<appender>。<loger>仅有一个name属性,一个可选的level和一个可选的addtivity属性。-->
<logger name="com.ztesoft.zsmart.core.security.data.jackson.ObjectMapperProvider" level="info"/>
<!--子节点<root>:它也是<loger>元素,但是它是根loger,是所有<loger>的上级。只有一个level属性,因为name已经被命名为"root",且已经是最上级了。-->
<!--level: 用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF,不能设置为INHERITED或者同义词NULL。 默认是DEBUG。-->
<!--root 的日志级别配置的为 info,但是却输出 debug 级别的日志信息,所以从测试结果可以看出,向上传递的日志信息的日志级别将由最底层的子元素决定(最初传递信息的 logger),因为子元素设置的日志级别为 debug,所以也输出了 debug 级别的信息。-->
<root level="${ROOT_LEVEL}">
<!-- <appender-ref ref="APP_LOG" /> -->
<appender-ref ref="CONSOLE" />
</root>
</configuration>
参考:https://blog.csdn.net/hellolovelife/article/details/78230177