Logback 自定义Appender发送预警

1、自定义Appender

目的:接收日志消息,现将日志通过http接口发送到预警服务

package com.test.service.appender;

import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.UnsynchronizedAppenderBase;
import org.springframework.web.client.RestTemplate;

import java.net.InetAddress;
import java.util.HashMap;
import java.util.Map;

public class HttpLoggerAppender extends UnsynchronizedAppenderBase<LoggingEvent> {

    @Override
    protected void append(LoggingEvent le) {

        try {
		
            String logUrl = context.getProperty("logUrl") + "?endPoint={endPoint}&title={title}&exMsg={exMsg}&level={level}";
            String title = context.getProperty("logTitle");
 

            String port = context.getProperty("logPort");
            String content = le.getFormattedMessage();            

            Map<String, Object> log = new HashMap<>(); 
            log.put("level", le.getLevel().levelStr);
            log.put("exMsg", le.getLevel().levelStr+"-"+le.getLoggerName()+":" +content);
       
            log.put("title", title);
            log.put("endPoint", InetAddress.getLocalHost().getHostAddress() + ":" + port);            RestTemplate restTemplate = new RestTemplate();
            try {
                restTemplate.getForObject(logUrl, String.class, log);

            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

2、修改bootstrap.yaml文件
目的:增加日志自定义参数

logconfig:
  url: http://192.168.0.123/ialarmservice/send
  title: 服务
  port: 8186

3、logback-spring.xml增加配置文件

目的:定义自定义属性为appender使用,定义appender接收日志。

<springProperty scope="context" name="logUrl" source="logconfig.url" defaultValue="test"/>
    <springProperty scope="context" name="logTitle" source="logconfig.title" defaultValue="test"/>

    <springProperty scope="context" name="logconfigPort" source="logconfig.port"/>

    <appender name="warnLog" class="com.test.service.appender.HttpLoggerAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>warn</level>
        </filter>
    </appender>

<springProfile name="test"> 
        <root level="info">
            <appender-ref ref="warnLog"/>
        </root>
    </springProfile>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值