• logback日志输出到mongodb


    1、继承UnsynchronizedAppenderBase

    package com.xf.config;
    
    import java.util.Map;
    
    import org.springframework.data.mongodb.core.MongoTemplate;
    import org.springframework.util.StringUtils;
    
    import com.alibaba.fastjson.JSONObject;
    
    import ch.qos.logback.classic.spi.LoggingEvent;
    import ch.qos.logback.core.UnsynchronizedAppenderBase;
    import cn.hutool.extra.spring.SpringUtil;
    import lombok.Data;
    
    @Data
    public class MongoDBAppender extends UnsynchronizedAppenderBase<LoggingEvent> {
    
        private MongoTemplate mongoTemplate;
    
        String appName;
        String collectionName;
    
        @Override
        protected void append(LoggingEvent e) {
            if (mongoTemplate == null)
                mongoTemplate = SpringUtil.getBean(MongoTemplate.class);
            JSONObject obj = new JSONObject();
            obj.put("appName", appName);
            obj.put("Level", e.getLevel().toString());
            obj.put("Message", e.getFormattedMessage());
            obj.put("TimeStamp", e.getTimeStamp());
            obj.put("Class", e.getCallerData()[0].toString());
            Map<String, String> map = e.getMDCPropertyMap();
            map.forEach((k, v) -> {
                obj.put(k, v);
            });
            if (StringUtils.isEmpty(collectionName))
                mongoTemplate.save(obj, "wjflog");
            else
                mongoTemplate.save(obj, collectionName);
        }
    }

    2、xml配置

        <appender name="MONGODB" class="com.xf.config.MongoDBAppender">
            <appName>odvapi</appName>
            <collectionName>mylog</collectionName>
        </appender>

    3、mongdb配置

    spring:
      data:
        mongodb:
          database: test
          port: 27017
          host: 127.0.0.1
  • 相关阅读:
    这是一篇乖巧的草稿——vscode上传代码到代码托管平台GitHub
    性能测试基础及练习
    adb
    前端常用的设计模式
    Vue Router 路由实现原理
    XSS与CSRF区别及防范
    vue中函数的防抖节流
    axios 使用post方式传递参数,后端接受不到
    类数组转换为数组的方法
    深入理解原型,原型链的关系
  • 原文地址:https://www.cnblogs.com/wujf/p/16411117.html
Copyright © 2020-2023  润新知