簡體   English   中英

如何使用JMSAppender log4j2 JAVA

[英]How to use JMSAppender log4j2 JAVA

我正在嘗試使用log4j2中的JMS將日志推送到ActiveMqueue。

我已經在我的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>

之后,我想知道如何使用JMS附加程序登錄我的Java代碼? 如何檢索這個特定的appender,是否有類似的東西

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

提前致謝。

1。

在屬性文件中,有xml內容。 因此,我假設您正在嘗試使用xml樣式屬性文件。 如果是這樣,請將您的屬性文件重命名為具有.xml擴展名。 例如log4j2.xml 記住要編寫log4j2支持的xml。 示例可以在這里找到。

2。

在屬性文件的“ Loggers部分中,將定義的附加程序的name值稱為AppenderRef 根據您的Appenders部分, Loggers部分可以是

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

3。

在您的代碼中,按以下方式獲取JMS記錄器:

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

您可以使用log變量記錄任何內容。 例如

log.info("some message");

希望這個答案對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM