当前位置:首页 > 通信资讯 > 正文
目录
  • logback日志配置获取服务器ip和端口
    • 1、新建一个类继承ClassicConverter
    • 2、在配置文件logback.xml增加如下配置
    • 3、在需要用到ip的位置这样写: %ip
    • 4、获取端口号,同理
  • 让Logback日志中显示主机名与IP地址及一切你想显示的
    • 1、创建
    • 2、重新方法
    • 3、配置logback.xml

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.common; 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.common.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.common; import ch.qos.logback.classic.pattern.ClassicConverter; import ch.qos.logback.classic.spi.ILoggingEvent; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.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.common.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

如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

为您推荐:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。