国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Springboot通過(guò)log4j2+logstash整合日志到Elasticsearch中

這篇具有很好參考價(jià)值的文章主要介紹了Springboot通過(guò)log4j2+logstash整合日志到Elasticsearch中。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Springboot常用于spring-cloud中,大家在使用spring-cloud多服務(wù)的時(shí)候常常會(huì)存在一個(gè)問題,就是某個(gè)服務(wù)報(bào)錯(cuò)了,去撈日志的時(shí)候要一個(gè)一個(gè)服務(wù)去監(jiān)控或者撈日志排查錯(cuò)誤信息,這樣很耗時(shí)耗力,Elasticsearch查詢數(shù)據(jù)非常方便,如果能夠?qū)⑷罩颈4娴紼lasticsearch中,出現(xiàn)問題時(shí)根據(jù)相關(guān)關(guān)鍵字和時(shí)間對(duì)查詢?nèi)罩緯?huì)節(jié)省大量時(shí)間,通過(guò)Kibana或者h(yuǎn)ead插件通過(guò)瀏覽器查詢,不需要登錄到服務(wù)端,操作簡(jiǎn)單方便,本文實(shí)現(xiàn)了springboot+log4j2+ELK(Elasticsearch+Logstash+Kibana)將日志集成到Elasticsearch中,ELK如何安裝部署可以參考作者之前的文章:

ELK(Elasticsearch+Logstash+Kibana)安裝、使用_醉酒橫刀的博客-CSDN博客

1、Springboot搭建

??????? sprignboot搭建大家可以在網(wǎng)上找到很多例子,此處不再贅述。

2、Springboot集成log4j2

??????? 集成log4j需要以下幾個(gè)步驟

??????? 1)引入pom依賴

??????? 需要將starter和stater-web中引入的log包排除,再引入log4j2依賴包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <version>2.1.5.RELEASE</version>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.1.5.RELEASE</version>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
    <version>2.1.5.RELEASE</version>
</dependency>

??????? 2)配置文件修改

????????在appliction.yml中新增如下配置

logging:

  config: classpath:log4j2.xml
  level:
    com:
      test: debug

????????2)配置文件修改

????????log4j2.xml配置文件中內(nèi)容

<?xml version="1.0" encoding="UTF-8"?>
<!--      Configuration后面的status,這個(gè)用于設(shè)置log4j2自身內(nèi)部的信息輸出,可以不設(shè)置,
     當(dāng)設(shè)置成trace時(shí),可以看到log4j2內(nèi)部各種詳細(xì)輸出
-->
<!-- monitorInterval:Log4j能夠自動(dòng)檢測(cè)修改配置 文件和重新配置本身,設(shè)置間隔秒數(shù) -->
<configuration monitorInterval="5">
    <!-- 日志級(jí)別以及優(yōu)先級(jí)排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->

    <!-- 變量配置 -->
    <Properties>
        <!--
            格式化輸出:
            %d表示日期,
            %thread表示線程名,
            %-5level:級(jí)別從左顯示5個(gè)字符寬度
            %msg:日志消息,%n是換行符
            %logger{36} 表示 Logger 名字最長(zhǎng)36個(gè)字符
        -->
        <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight{%-5level}[%thread] %style{%logger{36}}{cyan} : %msg%n" />

        <!-- 定義日志存儲(chǔ)的路徑,不要配置相對(duì)路徑 -->
        <property name="FILE_PATH" value="./logs" />
        <!-- 服務(wù)名 -->
        <property name="FILE_NAME" value="order-service" />
    </Properties>

    <appenders>
        <console name="Console" target="SYSTEM_OUT">
            <!--輸出日志的格式-->
            <PatternLayout pattern="${LOG_PATTERN}" disableAnsi="false" noConsoleNoAnsi="false"/>
            <!--控制臺(tái)只輸出level及其以上級(jí)別的信息(onMatch),其他的直接拒絕(onMismatch)-->
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
        </console>

        <!--
          這個(gè)會(huì)打印出所有的info及以下級(jí)別的信息,每次大小超過(guò)size,
          則這size大小的日志會(huì)自動(dòng)存入按年份-月份建立的文件夾下面并進(jìn)行壓縮,作為存檔
        -->
        <RollingFile name="RollingFileInfo"
                     fileName="${FILE_PATH}/info.log"
                     filePattern="${FILE_PATH}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd}-INFO_%i.log.gz">
            <!--控制臺(tái)只輸出level及以上級(jí)別的信息(onMatch),其他的直接拒絕(onMismatch)-->
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!--interval屬性用來(lái)指定多久滾動(dòng)一次,默認(rèn)是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy屬性如不設(shè)置,則默認(rèn)為最多同一文件夾下7個(gè)文件開始覆蓋 -->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!-- 這個(gè)會(huì)打印出所有的warn及以下級(jí)別的信息,每次大小超過(guò)size,則這size大小的日志會(huì)自動(dòng)存入按年份-月份建立的文件夾下面并進(jìn)行壓縮,作為存檔-->
        <RollingFile name="RollingFileWarn"
                     fileName="${FILE_PATH}/warn.log"
                     filePattern="${FILE_PATH}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd}-WARN_%i.log.gz">
            <!--控制臺(tái)只輸出level及以上級(jí)別的信息(onMatch),其他的直接拒絕(onMismatch)-->
            <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!--interval屬性用來(lái)指定多久滾動(dòng)一次,默認(rèn)是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy屬性如不設(shè)置,則默認(rèn)為最多同一文件夾下7個(gè)文件開始覆蓋-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!-- 這個(gè)會(huì)打印出所有的error及以下級(jí)別的信息,每次大小超過(guò)size,則這size大小的日志會(huì)自動(dòng)存入按年份-月份建立的文件夾下面并進(jìn)行壓縮,作為存檔-->
        <RollingFile name="RollingFileError"
                     fileName="${FILE_PATH}/error.log"
                     filePattern="${FILE_PATH}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd_HH}-ERROR_%i.log.gz">
            <!--控制臺(tái)只輸出level及以上級(jí)別的信息(onMatch),其他的直接拒絕(onMismatch)-->
            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!--interval屬性用來(lái)指定多久滾動(dòng)一次,默認(rèn)是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy屬性如不設(shè)置,則默認(rèn)為最多同一文件夾下7個(gè)文件開始覆蓋-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>
        <Socket name="logstash" host="192.168.36.129" port="4560" protocol="TCP">
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </Socket>
    </appenders>

    <!--Logger節(jié)點(diǎn)用來(lái)單獨(dú)指定日志的形式,比如要為指定包下的class指定不同的日志級(jí)別等。-->
    <!--然后定義loggers,只有定義了logger并引入的appender,appender才會(huì)生效-->
    <loggers>
        <!--過(guò)濾掉spring和mybatis的一些無(wú)用的DEBUG信息-->
        <logger name="org.mybatis" level="info" additivity="false">
            <AppenderRef ref="Console"/>
        </logger>
        <!--監(jiān)控系統(tǒng)信息-->
        <!--若是additivity設(shè)為false,則 子Logger 只會(huì)在自己的appender里輸出,而不會(huì)在 父Logger 的appender里輸出。-->
        <Logger name="top.fate" level="info" additivity="false">
            <AppenderRef ref="Console"/>
        </Logger>

        <root level="info">
            <appender-ref ref="Console"/>
            <appender-ref ref="RollingFileInfo"/>
            <appender-ref ref="RollingFileWarn"/>
            <appender-ref ref="RollingFileError"/>
            <appender-ref ref="logstash"/>
        </root>
    </loggers>
</configuration>

3、logstash配置修改及啟動(dòng)

???????? 1)配置文件修改

??????????????? 在logstash的bin目錄新建spring-boot-logstash.yml文件,具體內(nèi)容如下

????????????????/logstash-7.11.0/config/spring-boot-logstash.yml

??????????????? 注意修改ip地址和端口號(hào),output中的index會(huì)根據(jù)配置的命名規(guī)則自動(dòng)創(chuàng)建

????????????????

input {
? tcp {
??? #模式選擇為server
??? mode => "server"
??? #ip和端口根據(jù)自己情況填寫,端口默認(rèn)4560,對(duì)應(yīng)下文logback.xml里appender中的destination
??? host => "192.168.36.129"
??? port => 4560
??? #格式j(luò)son
??? codec => json_lines
? }
}
filter {
? #過(guò)濾器,根據(jù)需要填寫
}
output {
? elasticsearch {
??? action => "index"
??? #這里填寫es的地址,多個(gè)es要寫成數(shù)組的形式
??? hosts? => ["192.168.36.129:9200","192.168.36.130:9200","192.168.36.130:9200"]
??? #存放的索引名稱,這里每天會(huì)創(chuàng)建一個(gè)新的索引保存當(dāng)天的日志
??? index => "springfate-log-%{+YYYY.MM.dd}"
? }
}

???????? 2)logstash啟動(dòng)

?????? 切換到bin目錄下進(jìn)行啟動(dòng), 啟動(dòng)命令:

????????cd ../logstash/bin

./logstash -f /opt/ELK7.11.0/logstash-7.11.0/config/spring-boot-logstash.yml

??????? 啟動(dòng)成功后日志如下圖:

????????Springboot通過(guò)log4j2+logstash整合日志到Elasticsearch中

?

4、log4j2連接logstash

????????log4j2連接logstash需要在log4j2.xml中配置如下圖所示即可,具體配置在上面的配置中有

Springboot通過(guò)log4j2+logstash整合日志到Elasticsearch中

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-439290.html

5、Kibana查詢?nèi)罩緮?shù)據(jù)

??????? 啟動(dòng)springboot項(xiàng)目,啟動(dòng)Elasticsearch、Logstash、Kibana,防火墻關(guān)閉或者開放相應(yīng)端口

之后可以監(jiān)控logstash的日志發(fā)現(xiàn)springboot的日志會(huì)抽取到es中

?????? 1)spring啟動(dòng)日志

??????? 我在springboot打印日志,每隔20秒打印一次日志

????????2)logstash抽取數(shù)據(jù)日志

??????? 在logstah日志中可以監(jiān)測(cè)到日志抽取,(我這邊日志json格式轉(zhuǎn)換有問題,還未解決)Springboot通過(guò)log4j2+logstash整合日志到Elasticsearch中

?

??????? 3)Kibana查看Elasticsearh中新建的index

??????? 在kibana中可以看到以日期為單位新建的索引,日志在里面

Springboot通過(guò)log4j2+logstash整合日志到Elasticsearch中

?

??????? 4)Kibana查詢?nèi)罩緮?shù)據(jù)

????????登錄Kibana

Springboot通過(guò)log4j2+logstash整合日志到Elasticsearch中

?按照之前新建的查詢規(guī)則進(jìn)行搜索可以搜索出相關(guān)日志新星

Springboot通過(guò)log4j2+logstash整合日志到Elasticsearch中

至此,springboot+log4j2+ELK(Elasticsearch+Logstash+Kibana)簡(jiǎn)單整合已完成。

?

到了這里,關(guān)于Springboot通過(guò)log4j2+logstash整合日志到Elasticsearch中的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • springboot 集成log4j日志,需要自定義json格式內(nèi)容輸出方便ES采集

    公司需要將服務(wù)遷移到K8S環(huán)境上,由于目前服務(wù)輸出的格式不符合ES進(jìn)行采集的日志格式,所有需要將日志輸出的格式進(jìn)行調(diào)整為JSON格式,方便ES采集 之前是直接配置的輸出格式的message為 \\\"message\\\": %msg\\\" ,但是由于打日志需要打印json內(nèi)容的日志就沒有進(jìn)行轉(zhuǎn)義導(dǎo)致,整體輸出

    2024年02月12日
    瀏覽(20)
  • Java中的Log4j是什么?如何使用Log4j進(jìn)行日志管理

    Log4j是一個(gè)Java日志管理工具,它可以幫助開發(fā)者在應(yīng)用程序中記錄日志。它是由Apache軟件基金會(huì)開發(fā)和維護(hù)的,已經(jīng)成為Java開發(fā)中最流行的日志管理框架之一。 Log4j可以通過(guò)多種方式記錄日志,包括控制臺(tái)輸出、文件輸出、數(shù)據(jù)庫(kù)存儲(chǔ)等。此外,Log4j還提供了多種日志級(jí)別,

    2024年02月04日
    瀏覽(34)
  • SpringBoot整合Log4j2日志框架

    SpringBoot整合Log4j2日志框架

    SpringBoot底層默認(rèn)使用logback日志框架。 切換使用Log4j2日志框架。 pom.xml配置 log4j2-spring.xml 文件命名固定 log4j2-spring.xml ,讓SpringBoot加載配置文件。 文件名為 log4j2.xml ,文件將繞過(guò)SpringBoot直接調(diào)用日志框架。 控制臺(tái)日志輸出信息 日志文件生成 說(shuō)明:日志文件生成在當(dāng)前項(xiàng)目下

    2024年03月09日
    瀏覽(40)
  • 【日志加載 log4j】

    【日志加載 log4j】

    2.編寫配置 3.獲取日志對(duì)象 4.1 Loggers 記錄器 4.2 Appenders 輸出源 4.3 Layouts 布局 5. 配置文件 log4j.properties

    2024年02月11日
    瀏覽(23)
  • 用Log4j 2記錄日志

    用Log4j 2記錄日志

    下面代碼示例的maven工程中的pom.xml文件中需要增加對(duì)Log4j 2的依賴: 配置說(shuō)明參考文檔 https://logging.apache.org/log4j/2.x/manual/configuration.html 配置文件中pattern的詳細(xì)說(shuō)明 例如,下面配置文件片段中用到了pattern: pattern的詳細(xì)說(shuō)明請(qǐng)參考: https://logging.apache.org/log4j/2.x/manual/layouts.ht

    2024年02月14日
    瀏覽(23)
  • log4j日志框架的使用

    log4j的配置文件可以理解成有2部分 1根日志記錄器? 2 各appender(輸出源)配置 入口 loggerManager的靜態(tài)代碼塊 在loggerManager的靜態(tài)代碼塊中,完成對(duì)配置文件的讀取和解析 然后組裝成框架的Logger對(duì)象、appender對(duì)象完成初始化操作 當(dāng)調(diào)用logger.info打印日志時(shí),和logback的流程基本一樣

    2024年02月04日
    瀏覽(24)
  • Log4j瘋狂寫日志問題排查

    最近有個(gè) Java 系統(tǒng)上線后不久就收到了磁盤使用率告警,磁盤使用率已經(jīng)超過(guò)了 90% 以上,并且磁盤使用率還在不停增長(zhǎng)。 由于服務(wù)器磁盤被打滿,導(dǎo)致了系統(tǒng)正常的業(yè)務(wù)日志無(wú)法繼續(xù)打印,嚴(yán)重影響了系統(tǒng)的可靠性。 剛開始收到磁盤告警的時(shí)候,懷疑是日志級(jí)別問題,業(yè)務(wù)

    2024年02月13日
    瀏覽(25)
  • Springboot整合與使用log4j2日志框架【詳解版】

    Springboot整合與使用log4j2日志框架【詳解版】

    Spring Boot默認(rèn)使用LogBack,但是我們沒有看到顯示依賴的jar包,其實(shí)是因?yàn)樗诘膉ar包spring-boot-starter-logging都是作為spring-boot-starter-web或者spring-boot-starter依賴的一部分。 如果這里要使用Log4j2,需要從spring-boot-starter-web中去掉spring-boot-starter-logging依賴,同時(shí)顯示聲明使用Log4j2的依

    2024年02月11日
    瀏覽(29)
  • Java 項(xiàng)目日志實(shí)例基礎(chǔ):Log4j

    Java 項(xiàng)目日志實(shí)例基礎(chǔ):Log4j

    點(diǎn)擊下方關(guān)注我,然后右上角點(diǎn)擊...“設(shè)為星標(biāo)”,就能第一時(shí)間收到更新推送啦~~~ 介紹幾個(gè)日志使用方面的基礎(chǔ)知識(shí)。 1 Log4j 1、Log4j 介紹 Log4j(log for java)是 Apache 的一個(gè)開源項(xiàng)目,通過(guò)使用 Log4j,我們可以控制日志信息輸出到日志文件、也可以控制每一條日志的輸出格式

    2024年02月12日
    瀏覽(24)
  • Mybatis日志Log4j與Logback

    目錄 一、Log4j與Logback的區(qū)別? 發(fā)展歷史和維護(hù) 二、Slf4j 依賴 三、Logback使用 logback.xml配置文件 四、Log4j使用 五、查看日志內(nèi)容 發(fā)展歷史和維護(hù) Log4j是最早的Java日志框架之一,具有較長(zhǎng)的歷史;然而Log4j 1.x版本在性能和并發(fā)性方面存在一些限制,并且已經(jīng)停止維護(hù)。 Logbac

    2024年02月12日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包