1. 程式人生 > >logback 自定義變數獲取hostname

logback 自定義變數獲取hostname

開發十年,就只剩下這套架構體系了! >>>   

According to the Logback docs, there's now a CanonicalHostNamePropertyDefiner expressly to add a hostname to your logs. Add a define to your project:

<define name="hostname" class="ch.qos.logback.core.property.CanonicalHostNamePropertyDefiner"/>

and access it as ${hostname}

 

 

import java.net.InetAddress;
import java.net.UnknownHostException;

import ch.qos.logback.core.PropertyDefinerBase;

public class CanonicalHostNamePropertyDefiner extends PropertyDefinerBase {

    @Override
    public String getPropertyValue() {
        InetAddress ia;
        try {
            ia = InetAddress.getLocalHost();
            String host = ia.getHostName();//獲取計算機主機名
            return host;
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
        return null;
    }

}

 


         <define name="hostname" 
  class="com.dominos.cloud.common.util.CanonicalHostNamePropertyDefiner"/>
     <property scope="context" name="projectName" value="pe" />
       <contextName>${hostname} | ${projectName}</contextN