Springboot Slf4j 日志输出

控制台输出

使用 @Aspect 切面 , 指定 cn.xxx.controller.*.*(..)) 包下面的方法

@Aspect
@Component
@Slf4j
public class ControllerAspect {

    @Autowired
    HttpServletRequest request;

    @Around("execution(* cn.xxx.controller.*.*(..))")
    public Object handler(ProceedingJoinPoint pjp) throws Throwable {
        log.info("#--------------------------------#");
        log.info("# 请求路径 : " + request.getMethod() + " "  request.getServletPath());
        log.info("# 处理程序 : " + pjp.getTarget());
        log.info("# 请求参数 : " + Arrays.toString(pjp.getArgs()));

        try {
            Object proceed = pjp.proceed(pjp.getArgs());
            log.info("# 返回值 :" + proceed);
            return proceed;
        } catch (Throwable e) {
            log.info("# 异常抛出 : " + e.getMessage());
            throw e;
        } finally {
            log.info("#--------------------------------#");
        }
    }

}

配置文件参考

application.yml

logging:
  config: classpath:logback.xml

logback.xml

下面的输出路径如果不使用绝对路径,那么系统会默认在项目根目录下面输出。
logs/info/%i.%d{yyyy-MM-dd}.log : 输出到 D:/projectxxx/xxx/logs/info/xxx.log

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

    <!--输出样式-->
    <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!-- 按照上面配置的LOG_PATTERN来打印日志 -->
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>

    </appender>

    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--输出相对路径-->
            <fileNamePattern>logs/info/%i.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 日志保存30天 -->
            <maxHistory>30</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 单个日志文件的最大,超过则新建日志文件存储 -->
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>

        <encoder>
            <!-- 按照上面配置的LOG_PATTERN来打印日志 -->
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>

        <!--使用 INFO 级别来输出-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--输出相对路径-->
            <fileNamePattern>logs/error/%i.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 日志保存30天 -->
            <maxHistory>30</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 单个日志文件的最大,超过则新建日志文件存储 -->
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>

        <encoder>
            <!-- 按照上面配置的LOG_PATTERN来打印日志 -->
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
        <!--使用 ERROR 级别来输出-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>


    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="INFO_FILE" />
        <appender-ref ref="ERROR_FILE" />
    </root>

</configuration>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值