logback redis_使用Spring Boot和Logback登录到Redis
logback redis
在进行集中式日志记录时,例如使用Elasticsearch,Logstash和Kibana或Graylog2,您可以为Java应用程序提供多个选项。 您既可以编写标准的应用程序日志,也可以使用Logstash解析这些日志,这些日志既可以直接使用,也可以使用logstash-forwarder运送到另一台计算机。 或者,您可以直接以更合适的格式(如JSON)编写,因此处理步骤不需要太多的工作来解析消息。 第三种选择是直接写入不同的数据存储,该存储充当日志消息的缓冲区。 在本文中,我们正在研究如何在Spring Boot应用程序中配置Logback以将日志消息直接写入Redis 。
雷迪斯
我们正在使用Redis作为消息的日志缓冲区。 不是每个人都对Redis感到满意,但这是一个常见的选择。 Redis将其内容存储在内存中,使其非常适合快速访问,但也可以在必要时将其同步到光盘。 Redis的一个特殊功能是值可以是不同的数据类型,例如字符串,列表或集合。 我们的应用程序使用单个键和值对,其中键是应用程序的名称,值是包含我们所有日志消息的列表。 这样,我们可以在一个Redis实例中处理多个日志记录应用程序。
在测试设置时,您可能还需要调查Redis中存储的数据。 您可以使用redis-cli client访问它。 我收集了一些有用的命令来验证您的日志消息是否实际上已写入Redis。
命令 | 描述 |
---|---|
KEYS *
|
显示此Redis实例中的所有键 |
LLEN key
|
显示key 列表中的消息数
|
LRANGE key 0 100
|
显示key 列表中的前100条消息
|
登录配置
大多数情况下,使用Logback时,所有配置都使用XML文件。 Appender是将日志输出发送到某处的东西。 记录器用于设置日志级别,并将附加器附加到应用程序的某些部分。
对于Spring Boot,Logback可用于使用spring-boot-starter-logging的任何应用程序,它也是常见spring-boot-starter-web的依赖项。 可以将配置添加到位于src/main/resources
名为logback.xml
的文件中。
Spring Boot随附了已正确配置的文件和控制台附加程序。 我们可以在文件中包括基本配置,以保留所有预定义的配置。
为了登录到Redis,我们需要添加另一个appender。 一个不错的选择是相当轻巧的logback-redis-appender ,它使用Java客户端Jedis。 日志消息直接以JSON格式写入Redis,因此非常适合logstash。 我们可以使用以下配置将Spring Boot日志记录到Redis的本地实例。
<?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>
我们配置一个appender命名LOGSTASH
那就是一个实例RedisAppender
。 为本地Redis实例设置了主机和端口,键标识用于日志的Redis键。 还有更多可用选项,例如将日志消息推送到Redis的间隔。 浏览该项目的自述文件以获取更多信息。
Spring Boot依赖关系
为了使日志工作正常,我们当然必须向pom添加logback-redis-appender
依赖项。 根据您的Spring Boot版本,您可能会在日志文件中看到一些缺少方法的错误。
这是因为Spring Boot 管理其内部使用的依赖项,而jedis和commons-pool2的版本与我们所需的依赖项不匹配。 如果发生这种情况,我们可以配置要在pom的properties部分中使用的版本。
<properties><commons-pool2.version>2.0</commons-pool2.version><jedis.version>2.5.2</jedis.version>
</properties>
现在,该应用程序将启动,您可以看到它也将日志消息发送到Redis。
加强配置
最好不要在logback.xml
配置主机和端口。 当部署到具有不同设置的另一环境时,您必须更改文件或部署自定义文件。
Logback的Spring Boot集成允许使用主配置文件application.properties
来设置一些配置选项,例如要登录的文件和日志级别。 不幸的是,这是对某些值的特殊处理,就我所知,您无法添加自定义值。
但是幸运的是,Logback支持使用环境变量,因此我们不必依赖配置文件。 设置环境变量REDIS_HOST
和REDIS_PORT
您可以对附加程序使用以下配置。
<appender name="LOGSTASH" class="com.cwbase.logback.RedisAppender"><host>${REDIS_HOST}</host><port>${REDIS_PORT}</port><key>my-spring-boot-app</key></appender>
我们甚至可以更进一步。 要仅在设置了属性时激活附加程序,可以将条件处理添加到配置中。
<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表达式来确定是否应评估该块。 当附加器不可用时,Logback将仅记录错误并使用配置的任何其他附加器。 为此,您需要将Janino库添加到pom中 。
现在,根据环境变量激活了附加程序。 如果愿意,可以跳过本地开发的设置,而仅在生产系统上设置变量。
结论
轻松启动Spring Boot或仅登录Redis都很容易,但是其中一些细节是正确的工作。 但这值得付出努力:一旦习惯了集中式日志记录,就不再需要没有它的系统。
翻译自: https://www.javacodegeeks.com/2015/01/logging-to-redis-using-spring-boot-and-logback.html
logback redis
logback redis_使用Spring Boot和Logback登录到Redis相关推荐
- 使用Spring Boot和Logback登录到Redis
在进行集中式日志记录时,例如使用Elasticsearch,Logstash和Kibana或Graylog2,您可以为Java应用程序提供几个选项. 您既可以编写标准的应用程序日志,也可以使用Logs ...
- spring boot配置logback日志
spring boot配置logback日志 在上一篇spring boot入门里提过,Spring Boot默认的日志打印是logback,所以配置logback日志会很简单,但是也有注意的地方. ...
- 基于Spring Boot的Logback日志轮转配置
在生产环境下,日志是最好的问题调试和跟踪方法,因此日志的地位是十分重要的.我们平时经常使用的log4j,slf4j,logback等等,他们的配置上大同小异.这里就结合Spring Boot配置一下L ...
- spring boot 配置logback,logback不打印日志
spring boot 日志简介 spring boot只依赖 Commons Logging API,而不依赖其他日志(jul.logback.log4j).要想使用logback,必须引入jcl- ...
- Spring Boot 入门之登录创建
Spring Boot 入门之登录创建 一.在IDEA中创建一个springboot项目 1.使用Spring Initializr创建项目 2.选定Developer Tools中的Spring B ...
- Spring Boot集成第三方登录之微信登录
Spring Boot集成第三方登录之微信登录 准备工作 注册 创建网站应用 网站应用开发指南 授权流程 请求CODE 获取access_token 使用access_token调用接口 获取用户个人 ...
- Spring Boot集成第三方登录之微博登录
Spring Boot集成第三方登录之微博登录 准备工作 网站接入 开发者信息认证 创建应用 流程分析 引导授权用户 用户授权 授权成功 换取Access Token HTTP客户端 使用Access ...
- spring boot 1.5.4 整合redis、拦截器、过滤器、监听器、静态资源配置(十六)
上一篇:spring boot 1.5.4 整合webService(十五) 1 Spring Boot整合redis和缓存 Spring Boot中除了对常用的关系型数据库提供了优秀的自动 ...
- logback property 默认值_看完这篇文章还不会给spring boot配置logback,请你吃瓜
每一个成功人士的背后,必定曾经做出过勇敢而又孤独的决定. 放弃不难,但坚持很酷~ 一.logback日志框架 logback 是一个开源的日志组件,由三个部分组成:logback-core,logba ...
最新文章
- 服务器到底长什么样子啊(#゚Д゚)?
- 模为2的逆元是什么_逆元
- oracle文件管理
- 初中参观机器人博物馆的作文_展馆导览机器人好不好用?小笨展馆机器人案例...
- C++ 直接插入排序
- Fast Marching on 3D Meshes
- Coding the Matrix Week 1 The Vector Space作业
- 新中大软件 java班不_新中大gsoft-12.0-软件安装说明.doc
- wgs84坐标系拾取工具_COORD坐标转换
- Root file specified for compilation Vetur
- gem5中的O3 Pipeline Viewer Visualization实现方法
- RDS-TMC(Traffic Message Channel)蕴藏的商机不可小视
- win7 x64下安装python-opencv 及 “not a supported wheel”解决
- 一文搞懂G1垃圾回收器
- Java计算税收代码实现
- 全球与中国工业级氟化氢铵市场现状及未来发展趋势2022
- bazel 构建问题总结
- XML数据交换的安全解决方案
- PyQt5_pyqtgraph蜡烛图
- 设计模式总结--李建忠