Spring Boot projesinde Logback ve Graylog entegrasyonu için size adım adım bir kılavuz sunabilirim. Bu entegrasyon, uygulamanızın loglarını merkezi bir Graylog sunucusuna göndermenizi sağlayacaktır.
İşte yapmanız gerekenler:
- Gerekli bağımlılıkları ekleyin:
<dependency> <groupId>de.siegmar</groupId> <artifactId>logback-gelf</artifactId> <version>3.0.0</version> </dependency>
- Logback yapılandırma dosyanızı oluşturun veya düzenleyin (
logback-spring.xml
):
<?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>graylog-server-address</graylogHost>
<graylogPort>12201</graylogPort>
<maxChunkSize>508</maxChunkSize>
<useCompression>true</useCompression>
<encoder class="de.siegmar.logbackgelf.GelfEncoder">
<originHost>my-spring-boot-app</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%n</pattern>
</fullPatternLayout>
<staticField>app_name:my-spring-boot-app</staticField>
<staticField>os_arch:${os.arch}</staticField>
<staticField>os_name:${os.name}</staticField>
<staticField>os_version:${os.version}</staticField>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="GELF" />
</root>
</configuration>
Bu yapılandırmada şu önemli noktaları düzenlemeniz gerekiyor:
<graylogHost>
: Graylog sunucunuzun adresini girin.<graylogPort>
: Graylog'un GELF UDP girişi için kullandığı portu belirtin (genellikle 12201'dir).<originHost>
: Uygulamanızın adını veya tanımlayıcısını girin.<staticField>app_name:...
: Uygulamanızın adını burada da belirtin.
- Uygulamanızda loglama kullanımı:
Spring Boot uygulamanızda SLF4J ile loglama yapabilirsiniz. Örnek:
import org.slf4j.Logger; import org.slf4j.LoggerFactory; @RestController public class MyController { private static final Logger logger = LoggerFactory.getLogger(MyController.class); @GetMapping("/hello") public String hello() { logger.info("Hello endpoint called"); return "Hello, World!"; } }
- Graylog sunucusu yapılandırması:
Graylog sunucunuzda, GELF UDP girişini etkinleştirdiğinizden ve doğru portu (genellikle 12201) dinlediğinizden emin olun.
Bu adımları tamamladıktan sonra, uygulamanızı başlattığınızda loglar Graylog'a gönderilmeye başlayacaktır. Graylog web arayüzünden bu logları görüntüleyebilir ve analiz edebilirsiniz.