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
logback日志输出到mongodb的更多相关文章
- springboot+logback日志输出企业实践(下)
目录 1.引言 2. 输出 logback 状态数据 3. logback 异步输出日志 3.1 异步输出配置 3.2 异步输出原理 4. springboot 多环境下 logback 配置 5. ...
- [日志] spring boot + logback 日志输出配置
一.输出日志到控制台 springboot有很多starter(参考starter)方便快速构建项目依赖组件,logback是springboot默认的日志组件,启动即可看到打印在控制台输出的info ...
- springboot+logback日志输出企业实践(上)
目录 1.引言 2.logback简介 3. springboot默认日志框架-logback 3.1 springboot示例工程搭建 3.2 日志输出与基本配置 3.2.1 日志默认输出 3.2. ...
- vscode springboot logback 日志输出到不同文件
参照了:https://blog.csdn.net/appleyk/article/details/78717388# 在src\main\resources中新建一个logback-boot.xml ...
- Logback日志输出到ELK
用docker-compose本机部署elk docker-compose.yml version: "3" services: es01: image: docker.elast ...
- logback日志输出至数据库
我们知道将数据库输出到不同的地方需要使用不同的appender表示,那下面了解一下输出到数据库的DBAppender. 1.DBAppender 由于DBAppender会把记录写到数据库中,因此我们 ...
- SpringBoot系列——Logback日志,输出到文件以及实时输出到web页面
前言 SpringBoot对所有内部日志使用通用日志记录,但保留底层日志实现.为Java Util Logging.Log4J2和Logback提供了默认配置.在不同的情况下,日志记录器都预先配置为使 ...
- logback KafkaAppender 写入Kafka队列,集中日志输出.
为了减少应用服务器对磁盘的读写,以及可以集中日志在一台机器上,方便使用ELK收集日志信息,所以考虑做一个jar包,让应用集中输出日志 网上搜了一圈,只发现有人写了个程序在github 地址:https ...
- logback不输出日志消息,且SLF4J绑定源错误
我之前的项目已经成功使用过logback作为日志输出,但是今天新项目在使用的时候,不输出日志信息. 最后终于找到问题所在,并成功解决.解决步骤如下: 第一步:检查pom.xml 按照以往惯例,我先检查 ...
- logback异步输出日志(生产者消费者模型),并非批量写入日志。
一直对logback异步输出日志误解为异步批量写入日志. 今天看了源代码. 首先logback的异步日志是如何配置的: <!-- 管理端用户行为日志异步输出,异步的log片段必须在同步段后面,否 ...
随机推荐
- 【Virt.Contest】CF1215(div.2)
第二次打虚拟赛. CF 传送门 T1:Yellow Cards 黄色卡片 中规中矩的 \(T1\). 首先可以算出一个人也不罚下时发出的最多黄牌数: \(sum=a1*(k1-1)+a2*(k2-1) ...
- 抓包整理————ip 协议一[十二]
前言 简单介绍一下ip协议. 正文 先来看下ip协议在网络层的哪一层: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 ip 层就在网络层: 其实很好想象哈,就是因为每台机器起码有一个ip ...
- PHP实现CURL发送请求
public function curl($url, $params = false, $ispost = 0) { $httpInfo = array(); //初始化 $ch = curl_ini ...
- Huawei OJ 题解 - 31. 整数拆分 - Go 参考解答
## 简介- 详情:http://oj.rnd.huawei.com/problems/31/details- 难度:简单## 思路TODO## 用例TODO## 解答```gopackage mai ...
- Java-(array)数组的基本概念 及 Java内存划分
(array)数组的基本概念 数组的概念:是一种容器,可同时存放多个数据值 数组的特点: 1.数组是一种引用数据类型 2.数组当中的多个数据,类型必须统一 3.数组的长度在程序运行期间不可改变 数组的 ...
- winform窗体全局快捷键
4.使用ShortcutKeys组合键 this.toolStripMenuItem1.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Wind ...
- i春秋象棋
这是一道非常有意思的一道题,打开后就是一个pve的象棋游戏,我觉得下赢了就应该会出现flag,可惜多次尝试后失败了(果真有点厉害,我一时兴起就玩了好几把,有空试试拿更厉害的电脑跟他对下,如果赢了会怎么 ...
- c++题目:切香肠
c++题目:切香肠 题目 题目描述 有 n 条香肠,每条香肠的长度相等.我们打算将这些香肠切开后全部分给 k 名客人,且要求每名客人获得一样多的香肠.请问最少需要切几刀?注意一刀只能切断一条香肠,每个 ...
- oracle 内置函数(二)字符函数
主要函数: 大小写转换函数 获取子字符串函数(字符串截取) 获取字符串长度函数 字符串连接函数 去除子字符串函数 字符替换函数 字符串出现次数 字符串按照特定符号拆分多行 一.大小写转换 1.uppe ...
- SSH ERROR com.opensymphony.xwork2.interceptor.ParametersInterceptor
修改struts.xml配置:struts.devMode value="false" <constant name="struts.devMode" v ...