我有一个类,我会将它包含在现有的 jar 中(通过使用 jar 更新命令 jar uf )
所以你现在可能知道这个类是不可修改的,所以我希望我的设置以可配置的方式。
我已经在 HashMap 中定义了所有生产服务器和开发服务器。(我可以使用 Set ,但选择 HashMap 来解决另一个问题,因为我将 ip 获取为 127.0.0.1 并希望使用主机名收集 IP)
这是我的 log4j.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender class="com.Log4JCustomAppender" name="CUSTAPPEN">
<param value="includeDevMachiens" name="no" />
<layout class="org.apache.log4j.PatternLayout">
<param value="%m" name="ConversionPattern" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="CUSTAPPEN" />
</root>
</log4j:configuration>
如您所见,includeDevMachiens
如果参数名称为 no
,则在从开发服务器运行时不想执行该消息,反之亦然
这是我将执行消息的代码。
private String includeDevMachienes ;
public String getIncludeDevMachienes() {
return includeDevMachienes;
}
public void setIncludeDevMachienes(String includeDevMachienes) {
this.includeDevMachienes = includeDevMachienes;
}
String hostAddresss = Inet4Address.getLocalHost().getHostAddress();
String include = getIncludeDevMachienes(); // yes or no
how can i use yes or no value here ??
// right now the execute will be called for everything if the hostaddress value is present in the map .
if(hostIPMap.containsValue(hostAddress))
{
execute(logMessage);
}