2016-12-07 70 views
0

私はlog4j2でJMSを使ってActiveMqueueにログをプッシュしようとしています。JMSAppenderの使い方log4j2 JAVA

私は私のlog4j2.properitesこの後

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration monitorInterval="5"> 
    <Appenders> 

     <RollingFile name="fishLogstash" 
       fileName="E:/xxx/log/xxx.server/xxxLogstash.log" append="false" 
       immediateFlush="false" bufferSize="1000" 
       filePattern="/soft/log/xxx.server/xxxx-%i.log"> 
      <PatternLayout pattern="%-d{yyyy-MM-dd HH:mm:ss.SSS} %5p %c{1} - %m%n" /> 
      <Policies> 
       <SizeBasedTriggeringPolicy size="100M" /> 
      </Policies> 
      <DefaultRolloverStrategy max="10" /> 
     </RollingFile> 

     <JMS name="jmsQueue" destinationBindingName="logQueue" 
       factoryName="org.apache.activemq.jndi.ActiveMQInitialContextFactory" 
       factoryBindingName="ConnectionFactory" 
       providerURL="tcp://localhost:61616"> 
      <PatternLayout pattern="%-d{yyyy-MM-dd HH:mm:ss.SSS} %5p %c{1} - %m%n" /> 
     </JMS> 
    </Appenders> 

    <Loggers> 
     <Root level="warn"> 
      <AppenderRef ref="fish" /> 
     </Root> 
    </Loggers> 

</Configuration> 

でこれを行っている、私は私のJavaコードでログインしてJMSのアペンダを使用する方法だろうか?この特定のアペンダーを取得するには、何かがありますか?

Logger log = Logger.getAppender("jmsQueue") ? 

ありがとうございます。あなたのプロパティファイルで

答えて

1

1.

xmlコンテンツがあります。だから私はXMLスタイルのプロパティファイルを使用しようとしていると仮定しています。その場合は、プロパティファイルの名前を.xmlに変更してください。例えば。 log4j2.xml。 log4j2でサポートされているxmlを書いてください。例はhereです。プロパティファイルのLoggersセクションでAppenderRefとしてあなたの定義されたアペンダの

2.

言及name値。あなたのAppendersセクションに基づいて、Loggersセクションでは、次のようにJMSロガーを取得し、あなたのコードで

<Loggers> 
    <Logger name="jmsLogger" level="warn"> 
     <AppenderRef ref="jmsQueue" /> 
    </Logger> 
    <Root level="warn"> 
     <AppenderRef ref="fishLogstash" /> 
    </Root> 
</Loggers> 

3.

ことができます。

Logger log = LogManager.getLogger("jmsLogger"); 

あなたはlog変数を使用して何でもログインできます。例えば。

log.info("some message"); 

希望により、この回答が役に立ちます。

+0

ありがとうございました。それは魅力のように働いた。もう1つのことは、キュー内のメッセージを見ることができますが、同時に、この同じログはSTDOUT(コンソール)に書き込まれます。どうすればこれを避けることができますか? I/Oのコストが高価であるためです。私はこの – user3021914

+0

の私のポストを更新しました。要するに、 ""を削除/コメントします。しかし、これにより、log4jを通してすべてのコンソール出力が無効になります。 – sazzad

+0

しかし、あなたの最後の編集を元に戻して、あなたの問題や期待について言及した新しい質問を投稿することをお勧めします。これにより、より良いソリューションを得るチャンスが増えます。 – sazzad

関連する問題