好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

如何在logback日志配置里获取服务器ip和端口

logback日志配置获取服务器ip和端口

1、新建一个类继承ClassicConverter

在方法中获取服务器ip

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

package com.xxx.xxx.xxx测试数据mon;

import ch.qos.logback.classic.pattern.ClassicConverter;

import ch.qos.logback.classic.spi.ILoggingEvent;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import java.net.InetAddress;

import java.net.UnknownHostException;

 

/**

  * @author xiaoming

  * @date 2019/5/14 11:37

  * @description

  */

public class LogIpConfig extends ClassicConverter {

  private static final Logger logger = LoggerFactory.getLogger(LogIpConfig . class );

     private static String webIP;

     static {

         try {

             webIP = InetAddress.getLocalHost().getHostAddress();

         } catch (UnknownHostException e) {

             logger.error( "获取日志Ip异常" , e);

             webIP = null ;

         }

     }

 

     @Override

     public String convert(ILoggingEvent event) {

         return webIP;

     }

}

2、在配置文件logback.xml增加如下配置

?

1

< conversionRule conversionWord = "ip" converterClass = "com.xxx.xxx.xxx测试数据mon.LogIpConfig" />

3、在需要用到ip的位置这样写: %ip

"host": "%ip" 这样写,本地日志输入的时候内容是: "host": "127.0.0.1"

4、获取端口号,同理

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

package com.xxx.xxx.xxx测试数据mon;

import ch.qos.logback.classic.pattern.ClassicConverter;

import ch.qos.logback.classic.spi.ILoggingEvent;

import org.apache测试数据mons.lang3.ObjectUtils;

import org.apache测试数据mons.lang3.StringUtils;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import javax.management.MBeanServer;

import javax.management.MBeanServerFactory;

import javax.management.ObjectName;

import java.util.HashSet;

import java.util.Iterator;

import java.util.List;

import java.util.Set;

 

/**

  * @author xiaoming

  * @date 2019/5/14 11:37

  * @description

  */

public class LogPortConfig extends ClassicConverter {

     private static final Logger logger = LoggerFactory.getLogger(LogPortConfig. class );

     private static String webPort;

 

     static {

         try {

             List<MBeanServer> serverList = MBeanServerFactory.findMBeanServer( null );

             for (MBeanServer server : serverList) {

                 Set<ObjectName> names = new HashSet<ObjectName>();

                 names.addAll(server.queryNames( new ObjectName( "Catalina:type=Connector,*" ), null ));

                 Iterator<ObjectName> it = names.iterator();

                 while (it.hasNext()) {

                     ObjectName oName = (ObjectName) it.next();

                     String pValue = (String) server.getAttribute(oName, "protocol" );

                     if (StringUtils.equals( "HTTP/1.1" , pValue)) {

                         webPort = ObjectUtils.toString(server.getAttribute(oName, "port" ));

                     }

                 }

             }

         } catch (Exception e) {

             logger.error( "获取port失败,影响logback的文件拼接" , e);

             webPort = null ;

         }

     }

 

     @Override

     public String convert(ILoggingEvent event) {

         return webPort;

     }

}

?

1

< conversionRule conversionWord = "port" converterClass = "com.xxx.xxx.xxx测试数据mon.LogPortConfig" />

%ip:%port

让Logback日志中显示主机名与IP地址及一切你想显示的

1、创建

一个类继承自ch.qos.logback.classic.pattern.ClassicConverter

2、重新方法

?

1

2

@Override

     public String convert(ILoggingEvent event) {}

3、配置logback.xml

?

1

2

3

< conversionRule conversionWord = "sulong" converterClass = "SulongClass" />

<!--配置日志的格式-->

< property name = "CONSOLE_LOG_PATTERN" value = "%sulong %date{yyyy-MM-dd HH:mm:ss} | %highlight(%-5level) | %yellow(%thread) | %green(%logger) | %msg%n" />

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

原文链接:https://blog.csdn.net/ming451294498/article/details/90205195

查看更多关于如何在logback日志配置里获取服务器ip和端口的详细内容...

  阅读:52次