美文网首页
logback 指定打印日志文件

logback 指定打印日志文件

作者: Jimhou | 来源:发表于2018-08-28 16:58 被阅读152次
第一步:配置logback.xml
<configuration>
 <!-- INFO级别日志 appender -->
    <appender name="apiInfoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${XXX_HOME}/log/%d{yyyy-MM-dd}/xxx-api.log</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%level] %logger - %msg%n</pattern>
        </encoder>
    </appender>
    <logger name="apiFilterLogger" level="INFO" additivity="false">
        <appender-ref ref="apiInfoAppender" />
    </logger>
</configuration>
第二步:代码里使用Logger
@Component
@ServletComponentScan
@WebFilter(urlPatterns = "/rest/v1/*", filterName = "apiFilter")
public class ApiFilter implements Filter {
    private static final String API_FILTER_LOGGER_NAME = "apiFilterLogger";

    @Value("${api.filter.enable:false}")
    private boolean apiFilerEnable;
    private Logger logger = LoggerFactory.getLogger(API_FILTER_LOGGER_NAME);

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        if (apiFilerEnable) {
            HttpServletRequest httprequest = (HttpServletRequest) request;
            String currentIp = request.getRemoteAddr();
            Enumeration<String> e = httprequest.getHeaderNames();
            logger.info("============================API Request Start==============================");
            String msg = String.format(">>API Request:[%s] [%s]", httprequest.getMethod(), httprequest.getRequestURL());
            logger.info(msg);
            logger.info(">>>>>Remote Addr:" + httprequest.getRemoteAddr());
            logger.info(">>>>>Query String:" + httprequest.getQueryString());
            logger.info("============Header=================");
            while (e.hasMoreElements()) {
                String k = e.nextElement();
                logger.info(">>>>>" + k + " = " + httprequest.getHeader(k));
            }

            Map<String, String[]> paramMap = httprequest.getParameterMap();
            logger.info("============Parameter Map=================");
            paramMap.entrySet().forEach(x -> {
                logger.info(">>>>>" + x.getKey() + "=" + Joiner.on(",").join(x.getValue()));
            });

            logger.info("===================================================================");
        }
        chain.doFilter(request, response);
    }
    @Override
    public void destroy() {
    }
}

相关文章

  • logback 指定打印日志文件

    第一步:配置logback.xml 第二步:代码里使用Logger

  • springboot日志配置

    主要内容 使用springboot默认的logback 使用xml配置 指定打印日志等级、分模块打印 项目目录结构...

  • spring boot 中logback.xml的配置

    logback是一种日志框架,我们可以通过配置logback,让日志以指定的形式放在指定的位置。logback配置...

  • 高并发系统谨防被一行日志击垮

    一、同步打印日志中的坑 1.1 高并发场景下 logback 造成线程泄露 调用 logback 去打印日志的时候...

  • 用SLF4j/Logback打印日志-3

    在 用SLF4j/Logback打印日志-1 和 用SLF4j/Logback打印日志-2 中分别介绍了Logba...

  • logback 5.27

    1、在springboot项目Resource文件夹下添加logback.xml的配置,将日志文件打印出来2、ES...

  • 6.spring boot logback 多环境打印日志

    需求: spring boot 用自带的logback打印日志: 多环境打印. 生产环境输出到控制台和文件,一天一...

  • SpringBoot项目集成logback日志

    直接在资源目录下配置 logback-spring.xml 文件,配置内容如下: 日志文件输出到指定的当前项目的 ...

  • logback使用规约

    1. 本文档目的 帮助不熟悉Logback的同学,合理配置、使用Logback,提升日志打印性能,降低冗余日志的打...

  • 2019-04-14

    项目中使用logback框架进行日志处理,logback.xml配置文件中出现配置日志文件的基准目录,如下截图: ...

网友评论

      本文标题:logback 指定打印日志文件

      本文链接:https://www.haomeiwen.com/subject/nbjqwftx.html