0

既存のjarに含めるクラスがあります(jar updateコマンド jar uf を使用)

したがって、このクラスは変更できないことがわかっているかもしれないので、設定を構成可能な方法で行いたいと考えています。

HashMap 内ですべての運用サーバーと開発サーバーを定義しました。

これは私の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値が の場合に Param 名があることがわかるように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);
}
4

2 に答える 2

0
if(hostIPMap.containsValue(hostAddress)) {
    //Check include is yes/no
    if("yes".equalsIgnoreCase(getIncludeDevMachines())){execute(logMessage);}

    //do rest of the stuffs related to host
}
于 2013-06-29T22:13:07.100 に答える
0

this の代わりに、 Fetch this value as を<param value="includeDevMachiens" name="no" />使用 して、このフラグに基づいて操作を行うことができます。<param name="includeDevMachiens" name="True"boolean include = Boolean.parseBoolean(getIncludeDevMachienes()); // yes or no

于 2013-06-29T22:24:00.367 に答える