首先定义一个类,继承PropertyDefinerBase
public class LocalIpForLogback extends PropertyDefinerBase
{
@Override
public String getPropertyValue()
{
String localIp = "localIp";
try
{
localIp = InetAddress.getLocalHost().getHostAddress();
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
return localIp;
}
}
然后在logback.xml中,添加 <define>
配置,指定属性名(本例中为localIp)及获取属性值的实现类,这样就可以在配置中通过 ${localIp}
来引用该属性值了。logback-spring.xml示例
<springProperty scope="context" name="serverPort" source="server.port"/>
<springProperty scope="context" name="appName" source="server.servlet.context-path"/>
<define name="localIp" class="zsoft.gov.platform.common.logback.LocalIpForLogback"/>
<property name="applog.path" value="../../appLogs/${localIp}.${serverPort}/${appName}" />