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