如何通过配置过滤苍穹日志

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

如何通过配置过滤苍穹日志

1 业务背景

苍穹默认使用的日志框架是logback,系统通过logback输出日志记录业务排查信息,同时有业务认为不重要的日志比如重复且频繁的日志占用空间,在磁盘空间紧张的客户系统里面,过滤掉非关键日志是越来越紧迫的需求。下面介绍在苍穹系统下过滤输出日志。

2 解决方案

1.首先介绍logback配置存放位置

1)开发助手搭建的本地轻量环境,存放在启动类所属项目的resource目录下面的logback.xml里面,如下图。


启动类中已经设置log.config 属性,系统通过log.config属性加载日志配置文件

2)配置在mc的环境公共配置项。mservice 和web下的配置项是对应各自节点的日志配置属性。注意:启动类所属项目的resource优先级高于mc配置。


2.下面插件代码是打印日志测试插件,配置在页面点击按钮打印一条测试日志。

import java.util.EventObject;

public class TestPrintLogPlg extends AbstractFormPlugin {
    private static final Log logger = LogFactory.getLog(TestPrintLogPlg.class);
    @Override
    public void registerListener(EventObject e) {
        super.registerListener(e);
        // 侦听主菜单按钮点击事件
        this.addItemClickListeners("tbmain");
    }
    @Override
    public void itemClick(ItemClickEvent evt) {
        logger.info("测试日志打印1");
        super.itemClick(evt);
    }
}

过滤掉这条日志,可以如下配置。注意:生产上可以把这个name替换需要的类名或者是包路径

<logger name="bidt.fys.test.plugin.form.TestPrintLogPlg" level="OFF" additivity="false"  >
    <appender-ref ref="stdot" />
    <appender-ref ref="kafka" />
    <appender-ref ref="file" />
</logger>

--name 是类名称,也可以使用路径名称,当使用bidt.fys.test.plugin这个路径名称,就代表这条包下面所有类都按照这里的配置执行

--level 是日志级别,DEBUG,INFO,WARN,ERROR,OFF,OFF代表name里的所有类都不输出日志

--addtivity,默认为true,即除了自己appender,还会通过parent的appender进行打印,设置为false则不通过parent的appender进行打印。

注:一次业务打印多次日志,多是addtivity配置不当的问题导致的

--<appender-ref ref="stdot" /> 结合配置文件上下文,一般是用来打印在控制台的

--<appender-ref ref="kafka" />结合配置文件上下文,一般是用来打印在monitor的

--<appender-ref ref="file" />结合配置文件上下文,一般是用来输出在文件目录的


如下图,这样就在业务操作的时候不再输出日志了。


3 注意事项(可选)

日志过滤输出的原则是宜小不宜大,尽量从颗粒度更小的范围去过滤,否则在生产上会造成日志过滤掉关键错误信息,增加后续排查问题的难度。














如何通过配置过滤苍穹日志

1 业务背景苍穹默认使用的日志框架是logback,系统通过logback输出日志记录业务排查信息,同时有业务认为不重要的日志比如重复且频繁的日...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息