2017-09-21 55 views
0

我想記錄以瞭解jgroups如何在內部工作。所以,我做了兩個羣集通過以下http://jgroups.org/tutorial/index.htmt website.cluster成功,但我無法記錄FD協議保持活動消息,共享消息到另一個節點等jgroups演示項目日誌記錄不工作

我用以下java命令用於形成簇

java命令 「:log4j.jar:jgroups.jar::」 -Djgroups.bind_addr = 127.0.0.1 -Djava.net .preferIPv4Stack = true -Djgroups.use.jdk_logger = true org.jgroups.demos.Draw -props tcp1.xml

java -cp「。::log4j.jar:jgro ups.jar:。「」-Djgroups.bind_addr = 127.0.0.1 -Djava.net.preferIPv4Stack = true -Djgroups.use.jdk_logger = true org.jgroups.demos.Draw -props tcp2.xml

log4j.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

<!-- 
    For more configuration infromation and examples see the Apache Log4j website: http://logging.apache.org/log4j/ 
--> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true"> 

    <appender name="ROLL" class="org.apache.log4j.DailyRollingFileAppender"> 
     <param name="Threshold" value="ALL"/> 
     <param name="Target" value="System.out"/> 
    <param name="Append" value="true"/> 
    <param name="ImmediateFlush" value="true"/> 
    <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/> 
    <param name="File" value="JgroupLogs/jgroup.log"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <!-- The default pattern: Date Priority [Category] Message\n --> 
      <param name="ConversionPattern" value="%d %-5p [%c{1}] (%t) %m%n"/> 
     </layout> 
    </appender> 


    <!-- ================ --> 
    <!-- Limit categories --> 
    <!-- ================ --> 


    <category name="org.jgroups"> 
     <priority value="ALL"/> 
    </category> 

    <!-- ======================= --> 
    <!-- Setup the Root category --> 
    <!-- ======================= --> 

    <root> 
     <priority value="ALL"/> 
     <appender-ref ref="ROLL"/> 
    </root> 

</log4j:configuration> 

tcp.xml

<!-- 
    TCP based stack, with flow control and message bundling. This is usually used when IP 
    multicasting cannot be used in a network, e.g. because it is disabled (routers discard multicast). 
    Note that TCP.bind_addr and TCPPING.initial_hosts should be set, possibly via system properties, e.g. 
    -Djgroups.bind_addr=192.168.5.2 and -Djgroups.tcpping.initial_hosts=192.168.5.2[7800] 
    author: Bela Ban 
--> 
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns="urn:org:jgroups" 
     xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/jgroups.xsd"> 
    <TCP bind_port="7800" 
     recv_buf_size="${tcp.recv_buf_size:130k}" 
     send_buf_size="${tcp.send_buf_size:130k}" 
     max_bundle_size="64K" 
     sock_conn_timeout="300" 

     thread_pool.min_threads="0" 
     thread_pool.max_threads="20" 
     thread_pool.keep_alive_time="30000"/> 

    <TCPPING async_discovery="true" 
      initial_hosts="${jgroups.tcpping.initial_hosts:localhost[7800],localhost[7801]}" 
      port_range="2"/> 
    <MERGE3 min_interval="10000" 
      max_interval="30000"/> 
    <FD_SOCK/> 
    <FD timeout="3000" max_tries="3" /> 
    <VERIFY_SUSPECT timeout="1500" /> 
    <BARRIER /> 
    <pbcast.NAKACK2 use_mcast_xmit="false" 
        discard_delivered_msgs="true"/> 
    <UNICAST3 /> 
    <pbcast.STABLE desired_avg_gossip="50000" 
        max_bytes="4M"/> 
    <pbcast.GMS print_local_addr="true" join_timeout="2000" 
       view_bundling="true"/> 
    <MFC max_credits="2M" 
     min_threshold="0.4"/> 
    <FRAG2 frag_size="60K" /> 
    <!--RSVP resend_interval="2000" timeout="10000"/--> 
    <pbcast.STATE_TRANSFER/> 
<TRACE/> 
</config> 

感謝幫助我!

回答

1

-Djgroups.use.jdk_logger=true表示您不會使用log4j2。

使用系統屬性-Dlog4j.configurationFile=$HOME/log4j2.xml和下面的log4j2.xml文件。您需要將您的homedir替換爲$HOME,並注意log4j2 JAR需要位於類路徑中。

<?xml version="1.0" encoding="UTF-8"?> <configuration> <appenders> <Console name="STDOUT" target="SYSTEM_OUT" follow="true"> <!--PatternLayout pattern="%-7d{HH:mm:ss,SSS} [%p] %c: %m%n"/--> <PatternLayout pattern="%r [%p] %c{1}: %m%n"/> </Console> </appenders> <loggers> <root level="warn"> <appender-ref ref="STDOUT"/> </root> <logger name="org.jgroups" level="warn"/> <logger name="org.jgroups.protocols" level="TRACE"/> </loggers> </configuration>

+0

後我刪除-Djgroups.use.jdk_logger = true,但其工作正常,但我使用的log4j.xml。謝謝!!! –

+0

高興地看到這解決了你的問題!使用log4j,只需使用'-Dlog4j.configuration = file:$ HOME/log4j.properties' –

+0

謝謝!我會試試這個。 –