Risposte:
Aggiornamento: a partire da Spring Boot v1.2.0.RELEASE, le impostazioni in application.properties
o application.yml
si applicano. Vedere la sezione Livelli di registro della guida di riferimento.
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
Per le versioni precedenti di Spring Boot non è possibile. Devi semplicemente usare la normale configurazione per il tuo framework di registrazione (log4j, logback) per quello. Aggiungi il file di configurazione appropriato ( log4j.xml
o logback.xml
) alla src/main/resources
directory e configura a tuo piacimento.
È possibile abilitare la registrazione debug specificando --debug
quando si avvia l'applicazione dalla riga di comando.
Spring Boot fornisce anche un buon punto di partenza per il logback per configurare alcune impostazioni predefinite, colorare ecc. Il file base.xml che puoi semplicemente includere nel tuo file logback.xml. (Questo è consigliato anche dal logback.xml predefinito in Spring Boot.
<include resource="org/springframework/boot/logging/logback/base.xml"/>
application.properties
o application.yml
si applicano, come ha risposto Richard (modulo the :
o =
issue --- i due punti sembrano funzionare per me).
Puoi farlo usando application.properties.
logging.level.=ERROR
-> Imposta il livello di registrazione root su errore
...
logging.level.=DEBUG
-> Imposta il livello di registrazione root su DEBUG
logging.file=${java.io.tmpdir}/myapp.log
-> Imposta il percorso del file di registro assoluto su TMPDIR / myapp.log
Un set predefinito sano di application.properties relativo alla registrazione mediante i profili sarebbe: 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=
Quando sviluppi all'interno del tuo IDE preferito aggiungi semplicemente un -Dspring.profiles.active=dev
argomento as VM alla configurazione di esecuzione / debug della tua app.
Ciò fornirà errori solo durante la registrazione di produzione e di debug durante lo sviluppo SENZA scrivere l'output in un file di registro. Ciò migliorerà le prestazioni durante lo sviluppo (e salverà le unità SSD alcune ore di funzionamento;)).
logging.level.:DEBUG
spring-boot 1.4.0
: logging.level.=DEBUG
farà in modo che l'applicazione non si avvii e ottenga un errore:java.lang.ClassCircularityError: java/util/logging/LogRecord
logging.level.
sia solo una scorciatoia sintattica per praticità logging.level.root
, che potrebbe essere preferita come (1) meno incline a essere confusa con un errore di battitura, (2) potenzialmente più esplicita e (3) lavorare con il =
segno di assegnazione, che fornisce una maggiore coerenza generale al file di configurazione.
Il modo corretto di impostare la radice livello di registrazione sta usando la proprietà logging.level.root
. Vedi la documentazione , che è stata aggiornata da quando questa domanda è stata originariamente posta.
Esempio:
logging.level.root=WARN
Supponiamo che la tua applicazione abbia il nome del pacchetto come com.company.myproject
. Quindi è possibile impostare il livello di registrazione per le classi all'interno del progetto come indicato di seguito nei file application.properties
logging.level.com.company.myproject = DEBUG
logging.level.org.springframework.web = DEBUG
e logging.level.org.hibernate = DEBUG
imposterà il livello di registrazione solo per le classi di Spring Framework Web e Hibernate.
Per impostare la posizione del file di registrazione utilizzare
logging.file = /home/ubuntu/myproject.log
Se si è in Spring Boot, è possibile aggiungere direttamente le seguenti proprietà nel file application.properties per impostare il livello di registrazione, personalizzare il modello di registrazione e archiviare i registri nel file esterno.
Questi sono diversi livelli di registrazione e il suo ordine dal minimo << massimo.
OFF << FATALE << ERRORE << AVVISO << INFO << DEBUG << TRACCIA << TUTTO
# 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"
Passa attraverso questo link per personalizzare il tuo registro in modo più vivido.
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
Nel caso in cui si desideri utilizzare un diverso framework di registrazione, ad esempio log4j, ho scoperto che l'approccio più semplice è disabilitare la registrazione propria degli stivali a molla e implementare la propria. In questo modo posso configurare ogni livello di Google in un unico file, log4j.xml (nel mio caso).
Per ottenere ciò devi semplicemente aggiungere quelle righe al tuo pom.xml:
<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>
Probabilmente hai già la prima dipendenza e hai solo bisogno delle altre due. Si noti che questo esempio riguarda solo log4j.
Questo è tutto, ora sei pronto per configurare la registrazione per l'avvio nel tuo file di configurazione log4j!
log4j.properties
.
Puoi provare a impostare il livello di log su DEBUG che mostrerà tutto all'avvio dell'applicazione
logging.level.root=DEBUG
Per i record: la documentazione ufficiale , come per Spring Boot v1.2.0.RELEASE e Spring v4.1.3.RELEASE:
Se l'unica modifica che devi apportare alla registrazione è impostare i livelli di vari logger, puoi farlo in application.properties usando il prefisso "logging.level", ad es.
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
È inoltre possibile impostare la posizione di un file su cui accedere (oltre alla console) utilizzando "logging.file".
Per configurare le impostazioni più dettagliate di un sistema di registrazione è necessario utilizzare il formato di configurazione nativo supportato dal sistema di registrazione in questione. Per impostazione predefinita, Spring Boot preleva la configurazione nativa dalla posizione predefinita per il sistema (ad esempio classpath: logback.xml per Logback), ma è possibile impostare la posizione del file di configurazione utilizzando la proprietà "logging.config".
Se si desidera impostare ulteriori dettagli, aggiungere un nome file di configurazione del registro "logback.xml" o "logback-spring.xml".
nel tuo file application.properties, inserisci in questo modo:
logging.config: classpath:logback-spring.xml
in loback-spring.xml, inserisci in questo modo:
<?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>
Le risposte esistenti sono grandi. Voglio solo condividere con voi una nuova funzionalità di avvio a molla che consente di raggruppare i registri e impostare il livello di registrazione su tutto il gruppo.
Esempio dai documenti:
logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
logging.level.tomcat=TRACE
È una bella funzionalità che offre maggiore flessibilità.
Nella mia configurazione attuale l'ho definito in application.yaml in questo modo:
logging:
level:
ROOT: TRACE
Sto usando lo stivale a molla: 2.2.0.RELEASE. Puoi definire qualsiasi pacchetto che dovrebbe avere un livello TRACE simile.
nel progetto di avvio primaverile possiamo scrivere logging.level.root = WARN ma qui il problema è che dobbiamo riavviare anche se abbiamo aggiunto la dipendenza devtools, nel file delle proprietà se veniamo modificati qualsiasi valore non sarà rilevabile automaticamente, per questa limitazione sono venuto a conoscenza la soluzione i, e possiamo aggiungere un attuatore in pom.xml e passare il livello del logger come mostrato di seguito nel client postino nella barra degli indirizzi http: // localhost: 8080 / loggers / ROOT o http: // localhost: 8080 / loggers / com .mycompany e nel corpo puoi passare il formato json come di seguito
{
"configuredLevel": "WARN"
}
In caso di eclipse IDE e il tuo progetto è fatto, ricordati di pulire e costruire il progetto per riflettere le modifiche.
Con Springboot 2 puoi impostare il livello di registrazione root con una variabile d'ambiente come questa:
logging.level.root=DEBUG
Oppure puoi impostare una registrazione specifica per pacchetti come questo:
logging.level.my.package.name=TRACE
LOGGING_LEVEL_ROOT=DEBUG
Settings
->Config Vars
impostatologging.level.com.yourpackage
sul livello desiderato (INFO, ERRORE, DEBUG).