From 7534e13c1ce53c63087a01d0b18f501568dbf46b Mon Sep 17 00:00:00 2001
From: lailailai <954806471@qq.com>
Date: Mon, 20 Jul 2020 17:14:51 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=AF=B9log4j=E6=97=A5?=
=?UTF-8?q?=E5=BF=97=E7=9A=84=E6=89=93=E5=8D=B0,=E4=BF=AE=E6=94=B9log4j?=
=?UTF-8?q?=E5=86=85=E9=83=A8=E7=B1=BB=E7=9A=84=E5=90=8D=E7=A7=B0.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 6 +++
.../magicapi/logging/Log4j2LoggerContext.java | 6 +--
.../magicapi/logging/Log4jLoggerContext.java | 45 +++++++++++++++++++
.../magicapi/logging/LoggerManager.java | 2 +
4 files changed, 56 insertions(+), 3 deletions(-)
create mode 100644 src/main/java/org/ssssssss/magicapi/logging/Log4jLoggerContext.java
diff --git a/pom.xml b/pom.xml
index b71b7966..776acf17 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,6 +58,12 @@
spring-boot-starter-log4j2
provided
+
+ org.springframework.boot
+ spring-boot-starter-log4j
+ 1.3.8.RELEASE
+ provided
+
org.springframework.boot
spring-boot-starter-data-redis
diff --git a/src/main/java/org/ssssssss/magicapi/logging/Log4j2LoggerContext.java b/src/main/java/org/ssssssss/magicapi/logging/Log4j2LoggerContext.java
index 851ff303..78ec5ec0 100644
--- a/src/main/java/org/ssssssss/magicapi/logging/Log4j2LoggerContext.java
+++ b/src/main/java/org/ssssssss/magicapi/logging/Log4j2LoggerContext.java
@@ -26,16 +26,16 @@ public class Log4j2LoggerContext implements MagicLoggerContext{
.withConfiguration(configuration)
.withPattern("%d %t %p %X{TracingMsg} %c - %m%n")
.build();
- MagicLog4jAppender appender = new MagicLog4jAppender("Magic", logger.getFilter(), layout);
+ MagicLog4j2Appender appender = new MagicLog4j2Appender("Magic", logger.getFilter(), layout);
appender.start();
configuration.addAppender(appender);
logger.addAppender(appender,logger.getLevel(),logger.getFilter());
context.updateLoggers(configuration);
}
- class MagicLog4jAppender extends AbstractAppender{
+ class MagicLog4j2Appender extends AbstractAppender{
- MagicLog4jAppender(String name, Filter filter, Layout extends Serializable> layout) {
+ MagicLog4j2Appender(String name, Filter filter, Layout extends Serializable> layout) {
super(name, filter, layout);
}
diff --git a/src/main/java/org/ssssssss/magicapi/logging/Log4jLoggerContext.java b/src/main/java/org/ssssssss/magicapi/logging/Log4jLoggerContext.java
new file mode 100644
index 00000000..b458b10a
--- /dev/null
+++ b/src/main/java/org/ssssssss/magicapi/logging/Log4jLoggerContext.java
@@ -0,0 +1,45 @@
+package org.ssssssss.magicapi.logging;
+
+import org.apache.log4j.AppenderSkeleton;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.PatternLayout;
+import org.apache.log4j.spi.LoggingEvent;
+import org.apache.log4j.spi.RootLogger;
+import org.apache.log4j.spi.ThrowableInformation;
+
+
+public class Log4jLoggerContext implements MagicLoggerContext {
+ @Override
+ public void generateAppender() {
+ RootLogger logger = (RootLogger) LogManager.getRootLogger();
+ PatternLayout patternLayout = new PatternLayout("%d %p [%c] - %m%n");
+ MagicLog4jAppender magicLog4jAppender = new MagicLog4jAppender();
+ magicLog4jAppender.setLayout(patternLayout);
+ logger.addAppender(magicLog4jAppender);
+ }
+ class MagicLog4jAppender extends AppenderSkeleton{
+
+
+ @Override
+ protected void append(LoggingEvent event) {
+ LogInfo logInfo = new LogInfo();
+ logInfo.setLevel(event.getLevel().toString().toLowerCase());
+ logInfo.setMessage(String.valueOf(event.getMessage()));
+ ThrowableInformation throwableInformation = event.getThrowableInformation();
+ if (throwableInformation != null) {
+ logInfo.setThrowable(throwableInformation.getThrowable());
+ }
+ println(logInfo);
+ }
+
+ @Override
+ public void close() {
+
+ }
+
+ @Override
+ public boolean requiresLayout() {
+ return false;
+ }
+ }
+}
diff --git a/src/main/java/org/ssssssss/magicapi/logging/LoggerManager.java b/src/main/java/org/ssssssss/magicapi/logging/LoggerManager.java
index 44a682f0..97bbb7cc 100644
--- a/src/main/java/org/ssssssss/magicapi/logging/LoggerManager.java
+++ b/src/main/java/org/ssssssss/magicapi/logging/LoggerManager.java
@@ -16,6 +16,8 @@ public class LoggerManager {
magicLoggerContext = new LogbackLoggerContext();
}else if("org.apache.logging.slf4j.Log4jLoggerFactory".equalsIgnoreCase(loggerFactoryClassName)){ //log4j2
magicLoggerContext = new Log4j2LoggerContext();
+ }else if ("org.slf4j.impl.Log4jLoggerFactory".equalsIgnoreCase(loggerFactoryClassName)) {
+ magicLoggerContext = new Log4jLoggerContext();
}
if (magicLoggerContext == null) {
logger.error("无法识别LoggerContext:{}", loggerFactoryClassName);
--
Gitee