Api interface

Пакет: com.hypixel.hytale.logger

Файл: com/hypixel/hytale/logger/HytaleLogger.java

extends: LoggingApi<HytaleLogger.Api>

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.logger;

class="kw">import com.google.common.flogger.AbstractLogger;
class="kw">import com.google.common.flogger.LogContext;
class="kw">import com.google.common.flogger.LoggingApi;
class="kw">import com.google.common.flogger.backend.Platform;
class="kw">import com.google.common.flogger.parser.DefaultPrintfMessageParser;
class="kw">import com.google.common.flogger.parser.MessageParser;
class="kw">import com.hypixel.hytale.logger.backend.HytaleConsole;
class="kw">import com.hypixel.hytale.logger.backend.HytaleFileHandler;
class="kw">import com.hypixel.hytale.logger.backend.HytaleLogManager;
class="kw">import com.hypixel.hytale.logger.backend.HytaleLoggerBackend;
class="kw">import com.hypixel.hytale.logger.backend.HytaleUncaughtExceptionHandler;
class="kw">import com.hypixel.hytale.logger.util.LoggerPrintStream;
class="kw">import io.sentry.IScopes;
class="kw">import java.util.Map;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import java.util.logging.Level;
class="kw">import java.util.logging.LogManager;
class="kw">import javax.annotation.Nonnull;

class="kw">public class HytaleLogger class="kw">extends AbstractLogger<HytaleLogger.Api> {
   class="kw">private class="kw">static class="kw">final Map<String, HytaleLogger> CACHE;
   class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER;
   class="kw">static class="kw">final HytaleLogger.NoOp NO_OP;
   @Nonnull
   class="kw">private class="kw">final HytaleLoggerBackend backend;

   class="kw">public class="kw">static void init() {
      HytaleFileHandler var0 = HytaleFileHandler.INSTANCE;
      HytaleConsole var1 = HytaleConsole.INSTANCE;
      LOGGER.at(Level.INFO).log("Logger Initialized");
   }

   class="kw">public class="kw">static void replaceStd() {
      if (!HytaleLoggerBackend.isJunitTest()) {
         System.setOut(new LoggerPrintStream(get("SOUT"), Level.INFO));
         System.setErr(new LoggerPrintStream(get("SERR"), Level.SEVERE));
      }
   }

   class="kw">public class="kw">static HytaleLogger getLogger() {
      class="kw">return LOGGER;
   }

   @Nonnull
   class="kw">public class="kw">static HytaleLogger forEnclosingClass() {
      String var0 = Platform.getCallerFinder().findLoggingClass(HytaleLogger.class);
      String var1 = classToLoggerName(var0);
      class="kw">return get(var1);
   }

   @Nonnull
   class="kw">public class="kw">static HytaleLogger forEnclosingClassFull() {
      String var0 = Platform.getCallerFinder().findLoggingClass(HytaleLogger.class);
      class="kw">return get(var0);
   }

   @Nonnull
   class="kw">public class="kw">static HytaleLogger get(String var0) {
      class="kw">return CACHE.computeIfAbsent(var0, var0x -> new HytaleLogger(HytaleLoggerBackend.getLogger(var0x)));
   }

   class="kw">private HytaleLogger(@Nonnull HytaleLoggerBackend var1) {
      super(var1);
      this.backend = var1;
   }

   class="kw">public HytaleLogger.Api at(@Nonnull Level var1) {
      class="kw">return this.isLoggable(var1) ? new HytaleLogger.Context(var1) : NO_OP;
   }

   class="kw">public String getName() {
      class="kw">return super.getName();
   }

   @Nonnull
   class="kw">public Level getLevel() {
      class="kw">return this.backend.getLevel();
   }

   class="kw">public void setLevel(@Nonnull Level var1) {
      this.backend.setLevel(var1);
   }

   @Nonnull
   class="kw">public HytaleLogger getSubLogger(String var1) {
      class="kw">return new HytaleLogger(this.backend.getSubLogger(var1));
   }

   class="kw">public void setSentryClient(@Nonnull IScopes var1) {
      this.backend.setSentryClient(var1);
   }

   class="kw">public void setPropagatesSentryToParent(boolean var1) {
      this.backend.setPropagatesSentryToParent(var1);
   }

   @Nonnull
   class="kw">private class="kw">static String classToLoggerName(@Nonnull String var0) {
      int var1 = var0.lastIndexOf(46);
      String var2;
      if (var1 >= 0 && var0.length() > var1 + 1) {
         var2 = var0.substring(var1 + 1);
      } else {
         var2 = var0;
      }

      class="kw">return var2;
   }

   class="kw">static {
      System.setProperty("java.util.logging.manager", HytaleLogManager.class.getName());
      HytaleUncaughtExceptionHandler.setup();
      LogManager var0 = LogManager.getLogManager();
      if (!var0.getClass().getName().equals(HytaleLogManager.class.getName())) {
         throw new IllegalStateException(
            "Log manager wasn't set! Please ensure HytaleLogger is the first logger to be initialized or\nuse `System.setProperty(\"java.util.logging.manager\", HytaleLogManager.class.getName());` at the start of your application.\nLog manager is: "
               + var0
         );
      }

      CACHE = new ConcurrentHashMap<>();
      LOGGER = new HytaleLogger(HytaleLoggerBackend.getLogger());
      NO_OP = new HytaleLogger.NoOp();
   }

   class="kw">public class="kw">interface Api class="kw">extends LoggingApi<HytaleLogger.Api> {
   }

   class="kw">final class Context class="kw">extends LogContext<HytaleLogger, HytaleLogger.Api> class="kw">implements HytaleLogger.Api {
      class="kw">private Context(@Nonnull Level nullx) {
         super(nullx, false);
      }

      @Nonnull
      class="kw">protected HytaleLogger getLogger() {
         class="kw">return HytaleLogger.this;
      }

      @Nonnull
      class="kw">protected HytaleLogger.Api api() {
         class="kw">return this;
      }

      @Nonnull
      class="kw">protected HytaleLogger.Api noOp() {
         class="kw">return HytaleLogger.NO_OP;
      }

      class="kw">protected MessageParser getMessageParser() {
         class="kw">return DefaultPrintfMessageParser.getInstance();
      }
   }

   class="kw">private class="kw">static class="kw">final class NoOp class="kw">extends com.google.common.flogger.LoggingApi.NoOp<HytaleLogger.Api> class="kw">implements HytaleLogger.Api {
      class="kw">private NoOp() {
      }
   }
}