logback日志输出到mongodb

打印 上一主题 下一主题

主题 864|帖子 864|积分 2594

1、继承UnsynchronizedAppenderBase
  1. package com.xf.config;
  2. import java.util.Map;
  3. import org.springframework.data.mongodb.core.MongoTemplate;
  4. import org.springframework.util.StringUtils;
  5. import com.alibaba.fastjson.JSONObject;
  6. import ch.qos.logback.classic.spi.LoggingEvent;
  7. import ch.qos.logback.core.UnsynchronizedAppenderBase;
  8. import cn.hutool.extra.spring.SpringUtil;
  9. import lombok.Data;
  10. @Data
  11. public class MongoDBAppender extends UnsynchronizedAppenderBase<LoggingEvent> {
  12.     private MongoTemplate mongoTemplate;
  13.     String appName;
  14.     String collectionName;
  15.     @Override
  16.     protected void append(LoggingEvent e) {
  17.         if (mongoTemplate == null)
  18.             mongoTemplate = SpringUtil.getBean(MongoTemplate.class);
  19.         JSONObject obj = new JSONObject();
  20.         obj.put("appName", appName);
  21.         obj.put("Level", e.getLevel().toString());
  22.         obj.put("Message", e.getFormattedMessage());
  23.         obj.put("TimeStamp", e.getTimeStamp());
  24.         obj.put("Class", e.getCallerData()[0].toString());
  25.         Map<String, String> map = e.getMDCPropertyMap();
  26.         map.forEach((k, v) -> {
  27.             obj.put(k, v);
  28.         });
  29.         if (StringUtils.isEmpty(collectionName))
  30.             mongoTemplate.save(obj, "wjflog");
  31.         else
  32.             mongoTemplate.save(obj, collectionName);
  33.     }
  34. }
复制代码
2、xml配置
  1.     <appender name="MONGODB" class="com.xf.config.MongoDBAppender">
  2.         <appName>odvapi</appName>
  3.         <collectionName>mylog</collectionName>
  4.     </appender>
复制代码
3、mongdb配置
  1. spring:
  2.   data:
  3.     mongodb:
  4.       database: test
  5.       port: 27017
  6.       host: 127.0.0.1
复制代码
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用多少眼泪才能让你相信

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表