日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

本文介紹了Kafka附加器的Log4j故障轉(zhuǎn)移的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

問(wèn)題描述

我正在嘗試設(shè)置我的應(yīng)用程序,以便使用Log4j的Kafka附加器將日志寫入Kafka。我已經(jīng)將Kafka客戶端添加到我的類路徑中,并為Kafka附加器配置了相關(guān)配置。
當(dāng)Kafka集群可用時(shí),我能夠接收所有日志。

但是,如果Kafka關(guān)閉,我必須記錄到第二個(gè)位置,這樣日志事件才不會(huì)丟失。為此,我使用了故障轉(zhuǎn)移附加器,但它似乎仍然不起作用。

下面是我的完整log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="10">
    
    <Properties>
        <Property name="log-pattern" value="[%5.-5p]-[%d{UNIX_MILLIS}]-[%-27.-35t]-[%20c{1.}]--- %m%n" />
        <Property name="log-file-location" value="${sys:user.home}/app/logs" />
        <Property name="kafka-server-address" value="localhost:9092" />
        <Property name="kafka-topic-name" value="app-core-logs" />
    </Properties>

    <Appenders>

        <Kafka name="kafka" topic="${kafka-topic-name}">
            <JsonLayout />
            <Property name="bootstrap.servers">${kafka-server-address}</Property>
        </Kafka>

        <RollingFile name="rolling-file" fileName="${log-file-location}/app-core.log" filePattern="${log-file-location}/app-core-%d{MM-dd-yyyy}-%i.log.gz">
            <Policies>
                <OnStartupTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="20 MB" />
                <TimeBasedTriggeringPolicy />
            </Policies>
            <DefaultRolloverStrategy fileIndex="nomax" />
        </RollingFile>

        <Console name="console">
            <PatternLayout pattern="${log-pattern}" />
        </Console>

        <FailOver name="fail-over" primary="kafka">
            <Failovers>
                <AppenderRef ref="rolling-file" />
                <AppenderRef ref="console" />
            </Failovers>
        </FailOver>

        <File name="internal-logs" fileName="${log-file-location}/app-core-internal.log">
            <PatternLayout pattern="${log-pattern}" />
        </File>

    </Appenders>
    <Loggers>
        <Root level="INFO" includeLocation="false">
            <AppenderRef ref="fail-over" />
        </Root>
        <Logger name="io.netty" level="INFO" includeLocation="false" additivity="false">
            <AppenderRef ref="internal-logs" />
        </Logger>
        <Logger name="io.vertx" level="INFO" includeLocation="false" additivity="false">
            <AppenderRef ref="internal-logs" />
        </Logger>
        <Logger name="com.mchange" level="INFO" includeLocation="false" additivity="false">
            <AppenderRef ref="internal-logs" />
        </Logger>
    </Loggers>
</Configuration>

因?yàn)閼?yīng)用程序是在Kafka集群關(guān)閉時(shí)構(gòu)建在vert.x上的,所以我看到的只有線程塊和應(yīng)用程序沒(méi)有響應(yīng),并且在配置的所有故障轉(zhuǎn)移附加器中沒(méi)有其他日志可用。我使用的是Log4j 2.13.0,測(cè)試的是目前最新版本的Even Log4j 2.14.1。

還嘗試添加retryIntervalSeconds屬性,但沒(méi)有任何不同。

推薦答案

它不工作,因?yàn)槟J(rèn)情況下KafkaAppender會(huì)忽略異常。摘自log4j2 KafkaAppender文檔

忽略異常布爾值
默認(rèn)值為TRUE,這會(huì)導(dǎo)致在內(nèi)部記錄附加事件時(shí)遇到的異常,然后將其忽略。當(dāng)設(shè)置為False時(shí),異常將改為傳播到調(diào)用方。在FailoverAppender中包裝此附加器時(shí),必須將此項(xiàng)設(shè)置為False。

將IGNORREEXCEPTIONS設(shè)置為FALSE,這樣外觀程序就會(huì)知道有問(wèn)題并將消息傳播到故障轉(zhuǎn)移。

這篇關(guān)于Kafka附加器的Log4j故障轉(zhuǎn)移的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,

分享到:
標(biāo)簽:Kafka log4j 故障 轉(zhuǎn)移 附加
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定