日志文件有被创建,但是文件里面没有写入日志,是什么原因呢?

来源:2-2 开发用户流量拦截器-2

王小east

2022-12-28 00:15:08

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!--    //追加器,向控制台书写日志-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!--        //输出日志的格式-->
        <encoder>
            <pattern>[%thread] %d %level %logger{10} - %msg%n</pattern>
        </encoder>
    </appender>
<!--    //生成按天滚动的日志文件-->
    <appender name="accessHistoryLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--        //滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--            //日志文件保存位置-->
            <fileNamePattern>/Users/wangxiaodong/Desktop/ImoocProject/resuful/histoory.%d.log</fileNamePattern>
<!--            //输出日志的格式-->
            <encoder>
                <pattern>[%thread] %d %level %logger{10} - %msg%n</pattern>
            </encoder>
        </rollingPolicy>
    </appender>
<!--    //当前日志中,最低级别允许输出debug-->
    <root level="debug">
        <appender-ref ref="console"/>
    </root>
    <logger name="com.imooc.restful.interceptor.AccessHistoryInteceptor"
            level="INFO" additivity="false">
        <appender-ref ref="accessHistoryLog"/>
    </logger>
</configuration>
package com.imooc.restful.interceptor;


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class AccessHistoryInteceptor implements HandlerInterceptor {
    //创建日志对象
    private Logger logger = LoggerFactory.getLogger(AccessHistoryInteceptor.class);
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        StringBuilder log = new StringBuilder();
        log.append(request.getRemoteAddr());//获取远程用户IP地址
        log.append("|");
        log.append(request.getRequestURL());//获取用户访问的URL地址
        log.append("|");
        log.append(request.getHeader("user-agent"));//获取用户客户端环境
        logger.info(log.toString());//对日志进行输出
        return true;
    }
}
<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/**"/>
        <mvc:exclude-mapping path="/resources/**"/>
        <bean class="com.imooc.restful.interceptor.AccessHistoryInteceptor"/>
    </mvc:interceptor>
</mvc:interceptors>

https://img.mukewang.com/climg/63ab19d10931f83613640836.jpg

写回答

1回答

好帮手慕小尤

2022-12-28

同学你好,因闭合rollingPolicy标签书写错位置,从而导致无法将日志信息写入到日志文件中。建议同学进行调整,如下所示:

https://img.mukewang.com/climg/63abb9a109ad5b5b08320302.jpg

祝学习愉快!

0

0 学习 · 9886 问题

查看课程