From eb0e14e26261f03e83a69173b8b0c0c9a667eadd Mon Sep 17 00:00:00 2001 From: poison <1650652506@qq.com> Date: Wed, 6 Dec 2023 18:01:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9logback=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...itializer.java => LogbackInitializer.java} | 53 +++++++------------ ....logback.classic.spi.LoggerContextListener | 1 - src/main/resources/META-INF/spring.factories | 3 +- 3 files changed, 22 insertions(+), 35 deletions(-) rename src/main/java/com/our/base/easylog/logback/{config/CustomLoggerContextInitializer.java => LogbackInitializer.java} (55%) delete mode 100644 src/main/resources/META-INF/services/ch.qos.logback.classic.spi.LoggerContextListener diff --git a/src/main/java/com/our/base/easylog/logback/config/CustomLoggerContextInitializer.java b/src/main/java/com/our/base/easylog/logback/LogbackInitializer.java similarity index 55% rename from src/main/java/com/our/base/easylog/logback/config/CustomLoggerContextInitializer.java rename to src/main/java/com/our/base/easylog/logback/LogbackInitializer.java index cd6dcff..c52e712 100644 --- a/src/main/java/com/our/base/easylog/logback/config/CustomLoggerContextInitializer.java +++ b/src/main/java/com/our/base/easylog/logback/LogbackInitializer.java @@ -1,34 +1,36 @@ -package com.our.base.easylog.logback.config; +package com.our.base.easylog.logback; import ch.qos.logback.classic.Level; -import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.LoggerContext; -import ch.qos.logback.classic.encoder.PatternLayoutEncoder; import ch.qos.logback.classic.joran.JoranConfigurator; -import ch.qos.logback.classic.spi.LoggerContextListener; +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.encoder.LayoutWrappingEncoder; import ch.qos.logback.core.joran.spi.JoranException; -import ch.qos.logback.core.spi.ContextAwareBase; import com.our.base.easylog.logback.appender.PushLogAppender; +import lombok.extern.slf4j.Slf4j; import org.slf4j.LoggerFactory; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.context.ApplicationContextInitializer; +import org.springframework.context.ConfigurableApplicationContext; import java.net.URL; /** - * @author Alice - * @Description logback初始化接口 - * @date 2023/12/5 + * @author poison + * @Description logback 初始化实现 (在spring boot 初始化之前) + * @date 2023/12/6 **/ -public class CustomLoggerContextInitializer extends ContextAwareBase implements LoggerContextListener { - @Override - public boolean isResetResistant() { - return true; - } +@ConditionalOnClass(name = "ch.qos.logback.classic.LoggerContext") +@Slf4j +public class LogbackInitializer implements ApplicationContextInitializer { @Override - public void onStart(LoggerContext loggerContext) { + public void initialize(ConfigurableApplicationContext configurableApplicationContext) { + + LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); - loggerContext.reset(); JoranConfigurator configurator = new JoranConfigurator(); + String springLogbackFile="logback-spring.xml"; String logbackFilePath="logback.xml"; configurator.setContext(loggerContext); @@ -40,16 +42,15 @@ public class CustomLoggerContextInitializer extends ContextAwareBase implements } else if (logbackUrl != null) { configurator.doConfigure(logbackUrl); } else { - System.err.println("没有找到logback配置文件"); + log.error("没有找到logback配置文件"); } } catch (JoranException exception){ - System.err.println("没有正确加载logback配置文件:"+ exception.getMessage()); + log.error("没有正确加载logback配置文件:"+ exception.getMessage()); } - PatternLayoutEncoder encoder = new PatternLayoutEncoder(); + LayoutWrappingEncoder encoder = new LayoutWrappingEncoder<>(); encoder.setContext(loggerContext); - encoder.setPattern("%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"); encoder.start(); PushLogAppender pushLogAppender = new PushLogAppender(); pushLogAppender.start(); @@ -57,20 +58,6 @@ public class CustomLoggerContextInitializer extends ContextAwareBase implements logger.setLevel(Level.INFO); logger.addAppender(pushLogAppender); pushLogAppender.setContext(loggerContext); - } - - @Override - public void onReset(LoggerContext loggerContext) { - - } - - @Override - public void onStop(LoggerContext loggerContext) { - - } - - @Override - public void onLevelChange(Logger logger, Level level) { } } diff --git a/src/main/resources/META-INF/services/ch.qos.logback.classic.spi.LoggerContextListener b/src/main/resources/META-INF/services/ch.qos.logback.classic.spi.LoggerContextListener deleted file mode 100644 index 8c4b84e..0000000 --- a/src/main/resources/META-INF/services/ch.qos.logback.classic.spi.LoggerContextListener +++ /dev/null @@ -1 +0,0 @@ -com.our.base.easylog.logback.config.CustomLoggerContextInitializer \ No newline at end of file diff --git a/src/main/resources/META-INF/spring.factories b/src/main/resources/META-INF/spring.factories index 7522430..c433c81 100644 --- a/src/main/resources/META-INF/spring.factories +++ b/src/main/resources/META-INF/spring.factories @@ -1,2 +1,3 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ -com.our.base.easylog.EasyLogAutoConfigure \ No newline at end of file +com.our.base.easylog.EasyLogAutoConfigure +org.springframework.context.ApplicationContextInitializer=\com.our.base.easylog.logback.LogbackInitializer \ No newline at end of file -- Gitee