记一笔:logback自定义标签-ip和port


logback提供自定义属性接口:

PropertyDefiner:getPropertyValue()


 
 记一笔:GetIpCustomProperty

     public String getPropertyValue() {

        try {

                InetAddress address = InetAddress.getLocalHost();

                return address.getHostAddress();

          } catch (UnknownHostException e) {

              e.printStackTrace();

          }   

               return null;

      }


    GetPortCustomProperty==静态无请求获取服务端口号  

public String getTomcatPortValue() {
        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)) {
                        return ObjectUtils.toString(server.getAttribute(oname,
                            "port"));
                    }
                }
            }
        } catch (Exception e) {
            LOGGER.error("获取port失败,影响logback的文件拼接", e);
        }
        return StringUtils.EMPTY;
    }


GetHomeCustomProperty
    

public String getPropertyValue() {
      String jettyPath = System.getProperty("jetty.home");
      String catalinaPath = System.getProperty( "catalina.home");
      String path = StringUtils.defaultString(jettyPath, catalinaPath);
      if(StringUtils.isBlank(path)) {
          return defaultPath;
      }
        File file = new File(path);
        if(file.exists()){
            File parentFile = file.getParentFile();
            return (parentFile != null? parentFile.getPath(): file.getPath()) +File.separator+ defaultPath;
        }
        return defaultPath;
    }




然后在logback.xml配置文件中,定义自定义标签define name代表标签,class指向处理的类。在初始化时调用getPropertyValue()


 
 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值