README.MD

    logback 推送控制台日志至web页面

    基于Filter方式,在日志输出至控制台前,LoggerFitler 拦截日志通过websocket 推送至前台页面

    logback 配置如下

    在appender中指定filter 拦截

    <configuration>
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%magenta(%d{yyyy-MM-dd HH:mm:ss.SSS}) %highlight(%-5level) %green([%thread]) %logger{40}: %m %n
                </pattern>
                <charset>utf8</charset>
            </encoder>
            <filter class="com.weblog.logger.LoggerFilter"></filter>
        </appender>
        <root level="info">
            <appender-ref ref="STDOUT"/>
        </root>
    </configuration>

    实现原理

    LoggerFilter采集日志添加至LoggerQueue队列, LoggerConsumer 从LoggerQueue中采集推送至前台页面

    graph LR
     LoggerFilter--push--> LoggerQueue
     LoggerConsumer--pull--> LoggerQueue
     LoggerConsumer--socket--> wsLog.html   

    测试代码

    1s 写入1条info日志,2s 写入1条warn 日志

        @Scheduled(fixedDelay = 1000)
        private void mockLogInfoData() {
            logger.info("logger info data!");
        }
    
        @Scheduled(fixedDelay = 2000)
        private void mockLogWarnData() {
            logger.warn("logger warn data!");
        }

    idea 控制台日志: 在这里插入图片描述

    web页面日志: 在这里插入图片描述

    项目简介

    springboot 中将logback日志通过websocket推送至web页面

    发行版本

    当前项目没有发行版本

    贡献者 1

    X xingjie1989 @xingjie1989

    开发语言

    • Java 67.9 %
    • HTML 32.1 %