我想使用Graylog/RabbitMQ来记录我的spring boot微服务。据我所知,我必须将日志发送到RabbitMQ,并将其与Graylog集成。我想知道工作流以及如何实现它,比如如何将日志发送到RabbitMQ,是否需要使用任何其他日志框架。
您可以使用Logback appender从spring boot应用程序发送日志。将以下依赖项添加到pom中。xml
<dependency>
<groupId>de.siegmar</groupId>
<artifactId>logback-gelf</artifactId>
<version>1.1.0</version>
</dependency>
然后,您需要向类路径添加一个logback配置文件。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
<graylogHost>localhost</graylogHost>
<graylogPort>12201</graylogPort>
<maxChunkSize>508</maxChunkSize>
<useCompression>true</useCompression>
<layout class="de.siegmar.logbackgelf.GelfLayout">
<originHost>localhost</originHost>
<includeRawMessage>false</includeRawMessage>
<includeMarker>true</includeMarker>
<includeMdcData>true</includeMdcData>
<includeCallerData>false</includeCallerData>
<includeRootCauseData>false</includeRootCauseData>
<includeLevelName>false</includeLevelName>
<shortPatternLayout class="ch.qos.logback.classic.PatternLayout">
<pattern>%m%nopex</pattern>
</shortPatternLayout>
<fullPatternLayout class="ch.qos.logback.classic.PatternLayout">
<pattern>%m</pattern>
</fullPatternLayout>
<staticField>app_name:backend</staticField>
<staticField>os_arch:${os.arch}</staticField>
<staticField>os_name:${os.name}</staticField>
<staticField>os_version:${os.version}</staticField>
</layout>
</appender>
<root level="debug">
<appender-ref ref="GELF" />
<appender-ref ref="CONSOLE" />
</root>
</configuration>
更多信息:logback gelf
我使用的是,我想配置将不同的内容异步记录到不同的日志文件中。 我创建了log4j2文件,但是仍然使用Spring Boot默认日志记录。如何切换日志记录?
我想创建一个基于微服务的 spring boot 项目。我使用 Zuul 实现了一个网关,现在不确定如何使用什么来实现微服务之间的安全性。我需要微服务在用户收到请求时了解用户的权限,它们也可能相互通信,而不仅仅是网关。我正在使用 Spring boot 2.5.7 ,但似乎 oauth2 已被弃用,我也阅读了有关 spring 授权服务器的信息,但它是实验性的。我应该使用什么来确保安全性,如果您有
我刚刚为我们的微服务环境在前端创建了简单的Zuul代理,但现在我想将所有条目记录到通过代理的日志文件中。 做任何我需要做的事情。
在我的项目中,我们使用的是最新版本的 Spring-Cloud-LoadBalancer、spring-cloud网关和Resilience4J。 JDK 1.8版 IDE-Eclipse Oxygen。2 一切看起来都很好,但应用程序仍然没有运行...
我有一个微服务-A,它从另一个微服务-B获得令牌作为标头。现在我想在微服务-A中实现swagger2。问题是每个请求都流经微服务-B。因此swagger-ui在本地as中引发错误 它不能获得微服务-B试图获取的那些报头参数。