日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

logback redis_使用Spring Boot和Logback登录到Redis

發(fā)布時(shí)間:2023/12/3 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 logback redis_使用Spring Boot和Logback登录到Redis 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

logback redis

在進(jìn)行集中式日志記錄時(shí),例如使用Elasticsearch,Logstash和Kibana或Graylog2,您可以為Java應(yīng)用程序提供多個(gè)選項(xiàng)。 您既可以編寫標(biāo)準(zhǔn)的應(yīng)用程序日志,也可以使用Logstash解析這些日志,這些日志既可以直接使用,也可以使用logstash-forwarder運(yùn)送到另一臺(tái)計(jì)算機(jī)。 或者,您可以直接以更合適的格式(如JSON)編寫,因此處理步驟不需要太多的工作來(lái)解析消息。 第三種選擇是直接寫入不同的數(shù)據(jù)存儲(chǔ),該存儲(chǔ)充當(dāng)日志消息的緩沖區(qū)。 在本文中,我們正在研究如何在Spring Boot應(yīng)用程序中配置Logback以將日志消息直接寫入Redis 。

雷迪斯

我們正在使用Redis作為消息的日志緩沖區(qū)。 不是每個(gè)人都對(duì)Redis感到滿意,但這是一個(gè)常見(jiàn)的選擇。 Redis將其內(nèi)容存儲(chǔ)在內(nèi)存中,使其非常適合快速訪問(wèn),但也可以在必要時(shí)將其同步到光盤。 Redis的一個(gè)特殊功能是值可以是不同的數(shù)據(jù)類型,例如字符串,列表或集合。 我們的應(yīng)用程序使用單個(gè)鍵和值對(duì),其中鍵是應(yīng)用程序的名稱,值是包含我們所有日志消息的列表。 這樣,我們可以在一個(gè)Redis實(shí)例中處理多個(gè)日志記錄應(yīng)用程序。

在測(cè)試設(shè)置時(shí),您可能還需要調(diào)查Redis中存儲(chǔ)的數(shù)據(jù)。 您可以使用redis-cli client訪問(wèn)它。 我收集了一些有用的命令來(lái)驗(yàn)證您的日志消息是否實(shí)際上已寫入Redis。

命令 描述
KEYS * 顯示此Redis實(shí)例中的所有鍵
LLEN key 顯示key列表中的消息數(shù)
LRANGE key 0 100 顯示key列表中的前100條消息

登錄配置

大多數(shù)情況下,使用Logback時(shí),所有配置都使用XML文件。 Appender是將日志輸出發(fā)送到某處的東西。 記錄器用于設(shè)置日志級(jí)別,并將附加器附加到應(yīng)用程序的某些部分。

對(duì)于Spring Boot,Logback可用于使用spring-boot-starter-logging的任何應(yīng)用程序,它也是常見(jiàn)spring-boot-starter-web的依賴項(xiàng)。 可以將配置添加到位于src/main/resources名為logback.xml的文件中。

Spring Boot隨附了已正確配置的文件和控制臺(tái)附加程序。 我們可以在文件中包括基本配置,以保留所有預(yù)定義的配置。

為了登錄到Redis,我們需要添加另一個(gè)appender。 一個(gè)不錯(cuò)的選擇是相當(dāng)輕巧的logback-redis-appender ,它使用Java客戶端Jedis。 日志消息直接以JSON格式寫入Redis,因此非常適合logstash。 我們可以使用以下配置將Spring Boot日志記錄到Redis的本地實(shí)例。

<?xml version="1.0" encoding="UTF-8"?> <configuration><include resource="org/springframework/boot/logging/logback/base.xml"/><appender name="LOGSTASH" class="com.cwbase.logback.RedisAppender"><host>localhost</host><port>6379</port><key>my-spring-boot-app</key></appender><root level="INFO"><appender-ref ref="LOGSTASH" /><appender-ref ref="CONSOLE" /><appender-ref ref="FILE" /></root> </configuration>

我們配置一個(gè)appender命名LOGSTASH那就是一個(gè)實(shí)例RedisAppender 。 為本地Redis實(shí)例設(shè)置了主機(jī)和端口,鍵標(biāo)識(shí)用于日志的Redis鍵。 還有更多可用選項(xiàng),例如將日志消息推送到Redis的間隔。 瀏覽該項(xiàng)目的自述文件以獲取更多信息。

Spring Boot依賴關(guān)系

為了使日志工作正常,我們當(dāng)然必須向pom添加logback-redis-appender依賴項(xiàng)。 根據(jù)您的Spring Boot版本,您可能會(huì)在日志文件中看到一些缺少方法的錯(cuò)誤。

這是因?yàn)镾pring Boot 管理其內(nèi)部使用的依賴項(xiàng),而jedis和commons-pool2的版本與我們所需的依賴項(xiàng)不匹配。 如果發(fā)生這種情況,我們可以配置要在pom的properties部分中使用的版本。

<properties><commons-pool2.version>2.0</commons-pool2.version><jedis.version>2.5.2</jedis.version> </properties>

現(xiàn)在,該應(yīng)用程序?qū)?dòng),您可以看到它也將日志消息發(fā)送到Redis。

加強(qiáng)配置

最好不要在logback.xml配置主機(jī)和端口。 當(dāng)部署到具有不同設(shè)置的另一環(huán)境時(shí),您必須更改文件或部署自定義文件。

Logback的Spring Boot集成允許使用主配置文件application.properties來(lái)設(shè)置一些配置選項(xiàng),例如要登錄的文件和日志級(jí)別。 不幸的是,這是對(duì)某些值的特殊處理,就我所知,您無(wú)法添加自定義值。

但是幸運(yùn)的是,Logback支持使用環(huán)境變量,因此我們不必依賴配置文件。 設(shè)置環(huán)境變量REDIS_HOST和REDIS_PORT您可以對(duì)附加程序使用以下配置。

<appender name="LOGSTASH" class="com.cwbase.logback.RedisAppender"><host>${REDIS_HOST}</host><port>${REDIS_PORT}</port><key>my-spring-boot-app</key></appender>

我們甚至可以更進(jìn)一步。 要僅在設(shè)置了屬性時(shí)激活附加程序,可以將條件處理添加到配置中。

<if condition='isDefined("REDIS_HOST") && isDefined("REDIS_PORT")'><then><appender name="LOGSTASH" class="com.cwbase.logback.RedisAppender"><host>${REDIS_HOST}</host><port>${REDIS_PORT}</port><key>my-spring-boot-app</key></appender></then></if>

您可以使用Java表達(dá)式來(lái)確定是否應(yīng)評(píng)估該塊。 當(dāng)附加器不可用時(shí),Logback將僅記錄錯(cuò)誤并使用配置的任何其他附加器。 為此,您需要將Janino庫(kù)添加到pom中 。

現(xiàn)在,根據(jù)環(huán)境變量激活了附加程序。 如果愿意,可以跳過(guò)本地開(kāi)發(fā)的設(shè)置,而僅在生產(chǎn)系統(tǒng)上設(shè)置變量。

結(jié)論

輕松啟動(dòng)Spring Boot或僅登錄Redis都很容易,但是其中一些細(xì)節(jié)是正確的工作。 但這值得付出努力:一旦習(xí)慣了集中式日志記錄,就不再需要沒(méi)有它的系統(tǒng)。

翻譯自: https://www.javacodegeeks.com/2015/01/logging-to-redis-using-spring-boot-and-logback.html

logback redis

總結(jié)

以上是生活随笔為你收集整理的logback redis_使用Spring Boot和Logback登录到Redis的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。