Yanıtlar:
Güncelleme: Spring Boot v1.2.0'dan başlayarak.RELEASE, içindeki application.properties
veya application.yml
geçerli ayarlar geçerlidir. Başvuru kılavuzunun Günlük Düzeyleri bölümüne bakın .
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
Spring Boot'un önceki sürümleri için yapamazsınız. Bunun için günlük çerçevenizde (log4j, logback) normal yapılandırmayı kullanmanız yeterlidir. Dizine uygun yapılandırma dosyasını ( log4j.xml
veya logback.xml
) src/main/resources
ekleyin ve beğeninize göre yapılandırın.
--debug
Uygulamayı komut satırından başlatırken belirterek hata ayıklama günlüğünü etkinleştirebilirsiniz .
Spring Boot ayrıca, logback.xml dosyanıza ekleyebileceğiniz base.xml dosyasını , bazı varsayılanları yapılandırmak, renklendirmek vb.Için iyi bir başlangıç noktası sağlar . (Bu, Spring Boot'daki varsayılan logback.xml dosyasından da önerilir .
<include resource="org/springframework/boot/logging/logback/base.xml"/>
application.properties
veya application.yml
Richard tarafından yanıtlandı olarak uygularım, (modulo :
veya =
sorunu --- kolon benim için işe görünüyor).
Bunu application.properties dosyasını kullanarak yapabilirsiniz.
logging.level.=ERROR
-> Kök günlüğe kaydetme düzeyini hataya ayarlar
...
logging.level.=DEBUG
-> Kök günlüğe kaydetme düzeyini DEBUG olarak
logging.file=${java.io.tmpdir}/myapp.log
ayarlar -> Mutlak günlük dosyası yolunu TMPDIR / myapp.log olarak
ayarlar Profiller kullanarak günlüğe kaydetmeyle ilgili varsayılan bir uygulama.properties: application.properties:
spring.application.name=<your app name here>
logging.level.=ERROR
logging.file=${java.io.tmpdir}/${spring.application.name}.log
application-dev.properties:
logging.level.=DEBUG
logging.file=
En sevdiğiniz IDE içinde geliştirdiğinizde -Dspring.profiles.active=dev
, uygulamanızın çalıştırma / hata ayıklama yapılandırmasına bir as as VM argümanı eklemeniz yeterlidir.
Bu, çıktıyı bir günlük dosyasına yazmadan, yalnızca üretimde oturum açma ve hata ayıklama günlüğüne hata verecektir. Bu, geliştirme sırasında performansı artıracaktır (ve SSD sürücülerinden birkaç saatlik çalışma tasarrufu sağlayacaktır)).
logging.level.:DEBUG
spring-boot 1.4.0
: logging.level.=DEBUG
uygulama başlatılamadı ve hata alma neden olacaktır:java.lang.ClassCircularityError: java/util/logging/LogRecord
logging.level.
, logging.level.root
(1) bir yazım hatası ile karıştırılmaya daha az eğilimli, (2) potansiyel olarak daha açık ve (3) =
daha genel tutarlılık sağlayan atama işaretiyle çalışmak olarak tercih edilebilecek bir kolaylık sözdizimsel kısayolu. yapılandırma dosyasına.
Kök günlük kaydı düzeyini ayarlamanın doğru yolu özelliği kullanmaktır logging.level.root
. Bu soru ilk olarak sorulduğundan beri güncellenen belgelere bakın .
Misal:
logging.level.root=WARN
Uygulamanızın paket adı olarak varsayalım com.company.myproject
. Ardından, projenizdeki sınıflar için günlük düzeyini, application.properties dosyalarında aşağıda belirtildiği gibi ayarlayabilirsiniz.
logging.level.com.company.myproject = HATA AYIKLAMA
logging.level.org.springframework.web = DEBUG
ve logging.level.org.hibernate = DEBUG
yalnızca Spring framework web ve Hibernate sınıfları için günlük kaydı düzeyi ayarlar.
Günlük dosyasının konumunu ayarlamak için şunu kullanın:
logging.file = /home/ubuntu/myproject.log
Spring Boot kullanıyorsanız , günlük düzeyini ayarlamak, günlük kalıbını özelleştirmek ve günlükleri harici dosyaya kaydetmek için application.properties dosyasına doğrudan aşağıdaki özellikleri ekleyebilirsiniz .
Bunlar, farklı günlük düzeyleri ve sıralaması minimum << maksimum değeridir.
KAPALI << FATAL << HATA << UYARI << BİLGİ << HATA AYIKLAMA << TRACE << ALL
# To set logs level as per your need.
logging.level.org.springframework = debug
logging.level.tech.hardik = trace
# To store logs to external file
# Here use strictly forward "/" slash for both Windows, Linux or any other os, otherwise, its won't work.
logging.file=D:/spring_app_log_file.log
# To customize logging pattern.
logging.pattern.file= "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
Günlüğünüzü daha canlı bir şekilde özelleştirmek için lütfen bu bağlantıdan geçin.
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
Farklı bir günlük çerçevesi kullanmak istiyorsanız, örneğin log4j, en kolay yaklaşımın bahar botlarını kendi günlük kaydını devre dışı bırakmak ve kendiniz uygulamaktır. Bu şekilde her loglevel'i tek bir dosyada, log4j.xml (benim durumumda) yapılandırabilirim.
Bunu başarmak için bu satırları pom.xml dosyasına eklemeniz yeterlidir:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
Muhtemelen ilk bağımlılığa sahipsiniz ve sadece diğer ikisine ihtiyacınız var. Lütfen bu örneğin yalnızca log4j'yi kapsadığını unutmayın.
Hepsi bu, şimdi log4j yapılandırma dosyanızda önyükleme için günlük kaydını yapılandıracaksınız!
log4j.properties
.
Günlük düzeyini DEBUG olarak ayarlamayı deneyebilir ve uygulamayı başlatırken her şeyi gösterir
logging.level.root=DEBUG
Kayıtlar için: Spring Boot v1.2.0.RELEASE ve Spring v4.1.3 gibi resmi belgeler.
Günlüğe kaydetmede yapmanız gereken tek değişiklik, çeşitli günlüklerin düzeylerini ayarlamaksa, bunu "logging.level" önekini kullanarak application.properties içinde yapabilirsiniz.
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
Ayrıca "logging.file" komutunu kullanarak günlüğe kaydedilecek dosyanın konumunu (konsola ek olarak) da ayarlayabilirsiniz.
Bir günlük sisteminin daha ayrıntılı ayarlarını yapılandırmak için söz konusu LoggingSystem tarafından desteklenen yerel yapılandırma biçimini kullanmanız gerekir. Varsayılan olarak Spring Boot yerel yapılandırmayı sistem için varsayılan konumundan alır (ör. Logpath: logback.xml for Logback), ancak "logging.config" özelliğini kullanarak yapılandırma dosyasının konumunu ayarlayabilirsiniz.
Daha fazla ayrıntı ayarlamak istiyorsanız, lütfen "logback.xml" veya "logback-spring.xml" günlük yapılandırma dosyası adını ekleyin.
application.properties dosyanızda şu şekilde giriş yapın:
logging.config: classpath:logback-spring.xml
loback-spring.xml dosyasına şu şekilde giriş yapın:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="ROOT_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>sys.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/system.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="BUSINESS_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>TRACE</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>business.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/business.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="{project-package-name}" level="TRACE">
<appender-ref ref="BUSINESS_APPENDER" />
</logger>
<root level="INFO">
<appender-ref ref="ROOT_APPENDER" />
</root>
</configuration>
Mevcut cevaplar harika. Sadece günlükleri gruplandırmanıza ve tüm grupta günlük kaydı düzeyini ayarlamanıza izin veren yeni bir yay önyükleme özelliğini paylaşmak istiyorum.
Dokümanlardan örnek:
logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
logging.level.tomcat=TRACE
Daha fazla esneklik getiren güzel bir özellik.
Mevcut yapılandırmada bu gibi application.yaml tanımlanmış var:
logging:
level:
ROOT: TRACE
Spring-boot kullanıyorum: 2.2.0. TRACE seviyesinin böyle olması gereken herhangi bir paketi tanımlayabilirsiniz.
bahar önyükleme projesinde logging.level.root = WARN yazabiliriz ama burada sorun, devtools bağımlılığını eklediğimizde bile yeniden başlatmamız gerekiyor, eğer değiştirilirsek özellik dosyasında otomatik olarak algılanmayacak, bu sınırlama için biliyorum çözüm i, e pom.xml'de aktüatör ekleyebilir ve logger seviyesini url çubuğunda postacı istemcisinde gösterildiği gibi geçirebiliriz http: // localhost: 8080 / loggers / ROOT veya http: // localhost: 8080 / loggers / com .mycompany ve vücutta aşağıdaki gibi json biçimini geçebilirsiniz.
{
"configuredLevel": "WARN"
}
Tutulma IDE'si ve projeniz çok önemliyse, değişiklikleri yansıtmak için projeyi temizlemeyi ve inşa etmeyi unutmayın.
Springboot 2 ile kök günlük kaydı Düzeyini şu şekilde bir Ortam Değişkeni ile ayarlayabilirsiniz:
logging.level.root=DEBUG
Veya bunun gibi paketler için özel günlük kaydı ayarlayabilirsiniz:
logging.level.my.package.name=TRACE
LOGGING_LEVEL_ROOT=DEBUG
deve kutusu sözdizimini kullanarak
Settings
->Config Vars
grubulogging.level.com.yourpackage
istenen seviyede (INFO HATA, DEBUG) için.