1.配置(单体项目时)
logging:
config: classpath:logback-8001.xml //指定自定义配置文件位置(resources下)
file:
path: logs //在当前项目同级目录生成文件
2.自定义文件中的配置
*在application.yml文件中仅配置logging.config时,使用配置文件的文件输出路径
<!-- 定义日志文件 输入位置 -->
<property name="log_dir" value="./logs" />
2.1 value为:../logs时,则在项目同级目录生成logs文件夹
2.2 value为:./logs时,则在项目中生成logs文件夹
3.配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<springProperty scope="context" name="LOG_LEVEL" source="log.level" defaultValue="INFO"/>
<springProperty scope="context" name="applicationName" source="spring.application.name"/>
<!-- 定义日志文件 输入位置 在IDEA目录下生成日志文件 -->
<property name="log_dir" value="./jpalog"/>
<!-- 日志最大的历史 30天 -->
<property name="maxHistory" value="30"/>
<!-- ConsoleAppender 控制台输出日志 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- 对日志进行格式化 -->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36}.%M\(%line\) -%msg%n</pattern>
</encoder>
</appender>
<!-- ERROR级别日志 -->
<!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 RollingFileAppender-->
<!--<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
<!--<!– 过滤器,只记录ERROR级别的日志 –&-->
<!--<filter class="ch.qos.logback.classic.filter.LevelFilter">-->
<!--<level>ERROR</level>-->
<!--<onMatch>ACCEPT</onMatch>-->
<!--<onMismatch>DENY</onMismatch>-->
<!--</filter>-->
<!--<!– 最常用的滚动策略,它根据时间来制定滚动策略.既负责滚动也负责出发滚动 –&-->
<!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
<!--<!–日志输出位置 可相对、和绝对路径 –&-->
<!--<fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/ERROR.log</fileNamePattern>-->
<!--<!– 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件假设设置每个月滚动,且<maxHistory>是6,-->
<!--则只保存最近6个月的文件,删除之前的旧文件。注意,删除旧文件是,那些为了归档而创建的目录也会被删除–&-->
<!--<maxHistory>${maxHistory}</maxHistory>-->
<!--</rollingPolicy>-->
<!--<encoder>-->
<!--<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>-->
<!--</encoder>-->
<!--</appender>-->
<!-- 自定义级别日志 appender -->
<appender name="All" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤器,记录LOG_LEVEL级别以上的日志-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>${LOG_LEVEL}</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 按天回滚 daily -->
<fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/${LOG_LEVEL}.%i.log
</fileNamePattern>
<!-- 日志最大的历史 30天 -->
<maxHistory>${maxHistory}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 最大64MB 超过最大值,会重新建一个文件-->
<maxFileSize>50MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36}.%M\(%line\) -%msg%n</pattern>
</encoder>
</appender>
<logger name="java.sql.PreparedStatement" value="DEBUG"/>
<logger name="java.sql.Connection" value="DEBUG"/>
<logger name="java.sql.Statement" value="DEBUG"/>
<logger name="com.ibatis" value="DEBUG"/>
<logger name="com.ibatis.common.jdbc.SimpleDataSource" value="DEBUG"/>
<logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG"/>
<logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG"/>
<logger name="springfox.documentation.spring.web.PropertySourcedRequestMappingHandlerMapping" value="INFO"/>
<!--<logger name="com.qz" level="DEBUG" additivity="true">-->
<!--<appender-ref ref="STDOUT"/>-->
<!--</logger>-->
<!-- root级别 DEBUG -->
<root level="${LOG_LEVEL}">
<!--<root level="DEBUG">-->
<!-- 控制台输出 -->
<appender-ref ref="STDOUT"/>
<!-- 文件输出 -->
<!--<appender-ref ref="ERROR"/>-->
<appender-ref ref="All"/>
</root>
</configuration>