真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【從0開始Web開發(fā)實戰(zhàn)】SpringBoot集成LogBack和LogStash

目錄:

創(chuàng)新互聯(lián)建站專注于福海企業(yè)網(wǎng)站建設(shè),響應式網(wǎng)站建設(shè),電子商務商城網(wǎng)站建設(shè)。福海網(wǎng)站建設(shè)公司,為福海等地區(qū)提供建站服務。全流程定制設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務

1.?SpringBoot集成和配置LogBack

2.?封裝LogUtil,集中處理日志

3.?SpringBoot集成LogStash

4.?單獨安裝配置LogStash

5.?docker-compose一鍵部署ELK,簡單任性

6.?常見問題和解決方法

日志在系統(tǒng)中至關(guān)重要,尤其是生產(chǎn)環(huán)境,一旦出現(xiàn)問題,首先是日志中的錯誤信息觸發(fā)預警系統(tǒng),然后通過郵件、短信甚至電話通知的方式報警給系統(tǒng)負責人。在排查修復問題階段,開發(fā)測試人員通常也要查看系統(tǒng)日志,分析故障原因。

ELK是常用的日志處理系統(tǒng),SpringBoot集成LogBack和LogStash非常方便,配置LogBack將日志發(fā)送給LogStash。

【從0開始Web開發(fā)實戰(zhàn)】SpringBoot集成LogBack和LogStash?

代碼下載:https://github.com/jextop/StarterApi/

一,SpringBoot集成和配置LogBack

SpringBoot默認使用SLF4J和LogBack,可在application.yml中定制配置。


代碼文件

功能要點

SpringBoot集成SLF4J和LogBack

pom.xml

引入log依賴:spring-boot-starter-logging,注:spring-boot-starter和spring-boot-starter-web已經(jīng)引入了spring-boot-starter-logging

application.yml

定制配置log屬性

封裝LogUtil

LogUtil.java

集中處理日志

LogUtilTest.java

單元測試log輸出

功能調(diào)用

xxx.java

調(diào)用LogUtil函數(shù),如LogUtil.info()

1.?spring-boot-starter和spring-boot-starter-web默認引入了SLF4J和LogBack依賴。如果需要單獨引入,可在pom.xml中添加spring-boot-starter-logging


??org.springframework.boot
??spring-boot-starter-logging

2.?在application.yml中定制配置log屬性:

logging.level:指定package的輸出日志級別,可選:debug, info, warn, error

logging.file.path:指定日志文件路徑

logging.file.max-size:指定單個文件大小,超過時將滾動生成多個文件

logging.file.max-history:指定歸檔日志文件保留的最長歷史記錄

logging.pattern.console:輸出到console工作臺的日志格式

logging.pattern.file:輸出到日志文件的格式

logging:
??level:

????com.starter:info
??file:
????path:
logs
????max-size:10MB
????max-history:7
??pattern:
????console:
"%d %-5level [%thread] %logger : %msg%n"
????file:"%d %-5level [%thread] %logger : %msg%n"

二,封裝LogUtil.java集中處理日志

1. LogUtil集中處理日志

【從0開始Web開發(fā)實戰(zhàn)】SpringBoot集成LogBack和LogStash?

2. 單元測試LogUtil

@SpringBootTest(classes= StarterApplication.class)
public classLogUtilTest {
????@Test
????public voidtestLog() {
????????LogUtil.debug("debug","message.");
????????LogUtil.info("info","message.");
????????LogUtil.warn("warn","message.");
????????LogUtil.error("error","message.");
????}
}

輸出日志:

2020-01-31 14:21:13,796 INFO ?[main] com.common.util.LogUtil : info, message.

2020-01-31 14:21:13,796 WARN ?[main] com.common.util.LogUtil : warn, message.

2020-01-31 14:21:13,796 ERROR [main] com.common.util.LogUtil : error, message.

3.?代碼中調(diào)用LogUtil

- 調(diào)用LogUtil.info(“xxx”)

??LogUtil.info("Check cache to set str",key,str);

- Console工作臺和日志文件輸出:

2020-01-31 14:19:02,438 INFO ?[http-nio-8011-exec-2] com.common.util.LogUtil : Check cache to set str, cache_test_192.168.3.9_200131014871354985900257_緩存, cache_test_192.168.3.9_200131014871354985900257_緩存

注意:LogUtil輸出的信息中l(wèi)ogger都是LogUtil,如果需要不同的類中使用不同的logger,那么就請在類中創(chuàng)建自己的logger:

private static finalLoggerlog= LoggerFactory.getLogger(LogUtil.class);

三,SpringBoot集成LogStash


代碼文件

功能要點

SpringBoot集成LogStash

pom.xml

引入LogStash依賴:logstash-logback-encoder

logback.xml

配置LogStash日志格式

application.yml

引用logback.xml配置

啟動LogStash

安裝包bin目錄

配置logstash.conf,啟動logstash -f logstash.conf

1.?在pom.xml中添加LogStash依賴


????net.logstash.logback
????logstash-logback-encoder
????5.1

2.?在resouces目錄下添加logback.xml



????

????
????????127.0.0.1:9600
????????
????

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

3.?在application.yml中引用logback.xml配置:

logging:
??config:
classpath:logback.xml

四,單獨安裝配置LogStash

1.下載LogStash:https://www.elastic.co/downloads/logstash

官網(wǎng)慢時可用網(wǎng)盤:https://pan.baidu.com/s/1b-czkB8z5aL6rdxZtBmNEw?提取碼: arfb

2.?配置:在bin目錄下添加logstash.conf:

input.tcp.host可設(shè)置本機ip

input.tcp.port設(shè)置端口

output.elasticsearch.hosts設(shè)置輸出地址

input{
????tcp {
????????mode => "server"
????????host => "0.0.0.0"
????????port => 9600
????????codec => json_lines
????}
}
output{
????stdout{
???????codec => rubydebug
????}
????elasticsearch {
???????hosts => ["elasticsearch:9200"]
????}
}

3.?啟動:logstash -f logstash.conf,看到端口信息提示,運行成功

【從0開始Web開發(fā)實戰(zhàn)】SpringBoot集成LogBack和LogStash

4.?運行Spring項目,LogStash將收到日志信息

【從0開始Web開發(fā)實戰(zhàn)】SpringBoot集成LogBack和LogStash?

五,docker-compose一鍵部署ELK

ELK是常用的日志管理系統(tǒng),使用Docker-compose一鍵部署,省去安裝配置的繁瑣步驟。

【從0開始Web開發(fā)實戰(zhàn)】SpringBoot集成LogBack和LogStash

1.?Docker安裝:

https://docs.docker.com/install/linux/docker-ce/ubuntu/

https://docs.docker.com/docker-for-windows/install/

2.?腳本下載:

https://github.com/rickding/HelloDocker/tree/master/elk

├── docker-compose.yml

├── pull.sh

├── up.sh

├── logs.sh

├── down.sh

3.?docker-compose.yml腳本配置ELK服務:

logstash和kibana需要連接elasticsearch實例,所以設(shè)置了depends_on屬性。

version:'3'
services:
????elasticsearch:
????????hostname:
elasticsearch
????????image:elasticsearch:latest
????????ports:
????????????
- 9200:9200
????????????- 9300:9300

????log:
????????image:
registry.cn-shanghai.aliyuncs.com/hellodock/logstash:latest
????????ports:
????????????
- 9600:9600
????????????- 9601:9601
????????depends_on:
????????????
- elasticsearch

????kibana:
????????image:
registry.cn-shanghai.aliyuncs.com/hellodock/kibana:latest
????????ports:
????????????
- 5601:5601
????????depends_on:
????????????
- elasticsearch

4.?pull.sh拉取鏡像

可直接運行docker pull elasticsearch:latest拉取鏡像,docker images查看:

【從0開始Web開發(fā)實戰(zhàn)】SpringBoot集成LogBack和LogStash

5.?up.sh啟動容器

腳本中封裝了docker-compose up -d命令,啟動后運行docker ps查看容器實例:

【從0開始Web開發(fā)實戰(zhàn)】SpringBoot集成LogBack和LogStash

6.?logs.sh查看ELK運行日志

定制命令突出顯示重要信息:

docker-compose logs -ft | grep --color -i -e error -e warn -e version -e exception

【從0開始Web開發(fā)實戰(zhàn)】SpringBoot集成LogBack和LogStash

7.?down.sh停止服務

docker-compose down --remove-orphans停止并刪除容器:

【從0開始Web開發(fā)實戰(zhàn)】SpringBoot集成LogBack和LogStash

8.?查看ELK服務:

- elasticsearch:

【從0開始Web開發(fā)實戰(zhàn)】SpringBoot集成LogBack和LogStash

- logstsh:

【從0開始Web開發(fā)實戰(zhàn)】SpringBoot集成LogBack和LogStash

- kibana:

【從0開始Web開發(fā)實戰(zhàn)】SpringBoot集成LogBack和LogStash

使用docker-compose一鍵部署ELK,就是這么簡單任性。

五,常見問題和解決方法

l?多個log框架沖突,項目啟動時出現(xiàn)信息:SLF4J: Class path contains multiple SLF4J bindings

原因:項目依賴的jar包中引入了別的log框架比如log4j

解決:pom.xml中引入依賴時配置exclude,將不需要的log4j排除


????
????????org.slf4j
????????slf4j-log4j12
????


文章名稱:【從0開始Web開發(fā)實戰(zhàn)】SpringBoot集成LogBack和LogStash
本文URL:http://weahome.cn/article/gcggjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部