Giriş
Spring loglama için logback kullanır. Açıklaması şöyle.
Spring loglama için logback kullanır. Açıklaması şöyle.
Spring Boot uses Logback by default rather than SLF4J.
application.properties vs logback.xml
- Basit loglama ayarlarını belirtmek için application.properties kullanır. Detayları application.properties - Basit logging Ayarları yazısına taşıdım- Daha karmaşık şeyler için logback.xml kullanılabilir.
logback.xml Dosyasının Yeri
logback.xml dosyasının yerini belirtmek için java'yı çalıştırırken şöyle yaparız-Dlogging.config=config/logback.xml
Örnek
Profile seçimine göre loglama ayarlarını değiştirmek için şöyle yaparız
logging.config: classpath:log4j2-spring.xml
---
spring:
profiles: test
logging.config: classpath:log4j2-spring.xml
---
spring:
profiles: devel
logging.config: classpath:log4j2-spring.xml
---
spring:
profiles: prod
logging.config: classpath:log4j2-spring-prod.xml
Örnek
Eğer tüm ayarları kendimiz vermek istersek şöyle yaparız
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-A variable "LOGS" is defined with the given value -->
<property name="LOGS" value="./logs" />
<!-Configuration for console logging -->
<appender name="Console"
class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable
</Pattern>
</layout>
</appender>
<!-Configuration for file logging -->
<appender name="RollingFile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS}/spring-boot-logger.log</file>
<encoder
class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
</encoder>
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily and when the file reaches 10 MegaBytes -->
<fileNamePattern>${LOGS}/archived/spring-boot-logger-%d{yyyy-MM- dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<!-Root level logging as info by default for both console and file logging -->
<root level="info">
<appender-ref ref="RollingFile" />
<appender-ref ref="Console" />
</root>
<!-Service package to have trace level logging for both console and file logging -->
<logger name="com.project.service " level="trace" additivity="false">
<appender-ref ref="RollingFile" />
<appender-ref ref="Console" />
</logger>
</configuration>
Basit Log Ayarları
Örnek - Log Dosyasının Yolu
Şöyle yaparız
logging.file=/home/ubuntu/spring-boot-app.log
Örnek - Root Loglama Seviyesini Ayarlamak
Şöyle yaparız
logging.level.root=DEBUG
Örnek - Loglama Patern'i Değiştirmek
Şöyle yaparız.
Şöyle yaparız.
logging.level.root=info
logging.path=path
logging.file=${logging.path}/log.log
logging.pattern.file=
%d{dd-MM-yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M - %msg%n
logging.pattern.console=
%d{dd-MM-yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M - %n%highlight%msg%n
Örnek - logback.xmlŞöyle yaparız.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{dd-MM-yyyy HH:mm:ss.SSS} %magenta([%thread]) %highlight(%-5level)
%logger{36}.%M - %msg%n</pattern>
</encoder>
</appender>
<root level="off">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Hiç yorum yok:
Yorum Gönder