logback.xml Example
Hier sind einige Beispiele vonlogback.xml
, die in meinen Projekten nur zum Teilen verwendet werden.
P.S Tested with Logback 1.2.3
1. Senden Sie Protokolle an die Konsole
Die gesamte Protokollierung wird zur Konsole umgeleitet.
logback.xml
%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
2. Senden Sie Protokolle an Datei + Datei drehen
2.1 All logging will be redirected to a file logs/app.log
. Darüber hinaus wird diese Protokolldatei täglich archiviert oder wenn die Dateigröße größer als 10 MB ist.
logback.xml
${HOME_LOG} logs/archived/app.%d{yyyy-MM-dd}.%i.log.gz 10MB 20GB 60 %d %p %c{1.} [%t] %m%n
2.2 Below SizeAndTimeBasedFNATP
example is deprecated, it may still work, but it is better to use the above new SizeAndTimeBasedRollingPolicy
example.
logback.xml
${DEV_HOME}/debug.log %d{yyyy-MM-dd HH:mm:ss} - %msg%n ${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log 10MB
3. Senden Sie Fehlerprotokolle per E-Mail
logback.xml
%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n smtp.mailgun.org 25 123 123 TO_EMAIL RO_ANOTHER_EMAIL FROM_EMAIL TESTING: %logger{20} - %m
Zum Senden von E-Mails benötigen wir diesejavax.mail
pom.xml
com.sun.mail javax.mail 1.6.2
5. Protokolliert asynchron
Dies beschleunigt die Protokollierung.
logback.xml
6. SiftingAppender
Senden Sie Protokolle an eine separate Protokolldatei. Der Name der Protokolldatei wird zur Laufzeit über MDC definiert.
logback.xml
logFileName head0 ${DEV_HOME}/${logFileName}.log %d{yyyy-MM-dd HH:mm:ss} [%thread] %level %logger{35} - %msg%n ${DEV_HOME}/${logFileName}.%i.log.zip 1 10 10MB
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; //... public void run() { MDC.put('logFileName', "head1"); logger.debug("hello"); MDC.remove('logFileName'); }
Note
Bitte beziehen Sie sich auf diese vollständigenLogback
SiftingAppender example
7. Legen Sie den Namen der Protokolldatei programmgesteuert fest
Stellen Sie den Namen der Protokolldatei${log.name}
programmgesteuert überSystem.setProperty
ein
logback.xml
${USER_HOME}/${log.name}.error %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n ${USER_HOME}/${log.name}.log %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg%n
TestRunApp.java
package com.example.core; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestRunApp { //No static, else log.name.IS_UNDEFINED.log private final Logger logger = LoggerFactory.getLogger(TestRunApp.class); public static void main(String[] args) { //Set this before the logger start. System.setProperty("log.name", "abcdefg"); TestRunApp obj = new TestRunApp(); obj.start(); } private void start() { logger.debug("------ Starting Ant------"); //... } }
Ausgabe
Debug log file path /home/example/ant/logs/abcdefg.log Error log file path /home/example/ant/logs/abcdefg.error
Note
Bitte beziehen Sie sich auf dieses vollständige BeispielLogback – Set
log file name programmatically