Log4jLoggerContext.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package org.ssssssss.magicapi.logging;
  2. import org.apache.log4j.AppenderSkeleton;
  3. import org.apache.log4j.LogManager;
  4. import org.apache.log4j.PatternLayout;
  5. import org.apache.log4j.spi.LoggingEvent;
  6. import org.apache.log4j.spi.RootLogger;
  7. import org.apache.log4j.spi.ThrowableInformation;
  8. /**
  9. * 对接Log4j
  10. */
  11. public class Log4jLoggerContext implements MagicLoggerContext {
  12. @Override
  13. public void generateAppender() {
  14. RootLogger logger = (RootLogger) LogManager.getRootLogger();
  15. PatternLayout patternLayout = new PatternLayout("%d %p [%c] - %m%n");
  16. MagicLog4jAppender magicLog4jAppender = new MagicLog4jAppender();
  17. magicLog4jAppender.setLayout(patternLayout);
  18. logger.addAppender(magicLog4jAppender);
  19. }
  20. static class MagicLog4jAppender extends AppenderSkeleton {
  21. @Override
  22. protected void append(LoggingEvent event) {
  23. LogInfo logInfo = new LogInfo();
  24. logInfo.setLevel(event.getLevel().toString().toLowerCase());
  25. logInfo.setMessage(String.valueOf(event.getMessage()));
  26. ThrowableInformation throwableInformation = event.getThrowableInformation();
  27. if (throwableInformation != null) {
  28. logInfo.setThrowable(throwableInformation.getThrowable());
  29. }
  30. MagicLoggerContext.println(logInfo);
  31. }
  32. @Override
  33. public void close() {
  34. }
  35. @Override
  36. public boolean requiresLayout() {
  37. return false;
  38. }
  39. }
  40. }