HytaleLogFormatter class

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

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

extends: Formatter

Поля (25)

МодификаторыТипИмя
final DateTimeFormatter DATE_FORMATTER
boolean var10
String var11
var11
var11
int var12
String var2
var2
var2
var2
var2
StringWriter var3
String var4
int var5
StringBuilder var6
String var7
var7
var7
var7
var7
var7
var7
var7
var7
int var8

Методы (8)

МодификаторыВозвратСигнатура
if if(var2 == null)
if if(var10)
if if(var1 instanceof HytaleLoggerBackend.RawLogRecord)
if if(var5 < this.maxModuleName)
if if(var10)
if if(var7 != null)
if if(var12 < 6)
static String stripAnsiString stripAnsi(@Nonnull String var0)

Исходный код

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

class="kw">import java.io.PrintWriter;
class="kw">import java.io.StringWriter;
class="kw">import java.time.LocalDateTime;
class="kw">import java.time.ZoneOffset;
class="kw">import java.time.format.DateTimeFormatter;
class="kw">import java.util.function.BooleanSupplier;
class="kw">import java.util.logging.Formatter;
class="kw">import java.util.logging.Level;
class="kw">import java.util.logging.LogRecord;
class="kw">import java.util.regex.Pattern;
class="kw">import javax.annotation.Nonnull;

class="kw">public class HytaleLogFormatter class="kw">extends Formatter {
   class="kw">private class="kw">static class="kw">final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
   class="kw">private class="kw">static class="kw">final Pattern ANSI_CONTROL_CODES = Pattern.compile("\u001b\\[[;\\d]*m");
   class="kw">private BooleanSupplier ansi;
   class="kw">public int maxModuleName;
   class="kw">private int shorterCount;

   class="kw">public HytaleLogFormatter(BooleanSupplier var1) {
      this.ansi = var1;
   }

   @Nonnull
   @Override
   class="kw">public String format(@Nonnull LogRecord var1) {
      String var2 = var1.getMessage();
      if (var2 == null) {
         var2 = "null";
      }

      if (var1.getParameters() != null && var1.getParameters().length > 0) {
         try {
            var2 = String.format(var2, var1.getParameters());
         } catch (RuntimeException var9) {
            throw new IllegalArgumentException("Error logging using format string: " + var1.getMessage(), var9);
         }
      }

      if (var1.getThrown() != null) {
         StringWriter var3 = new StringWriter();
         var1.getThrown().printStackTrace(new PrintWriter(var3));
         var2 = var2 + "\n" + var3.toString();
      }

      boolean var10 = this.ansi.getAsBoolean();
      if (var10) {
         var2 = var2 + "\u001b[m";
      }

      if (var1 class="kw">instanceof HytaleLoggerBackend.RawLogRecord) {
         class="kw">return !var10 ? stripAnsi(var2) + "\n" : var2 + "\n";
      }

      String var4 = var1.getLoggerName();
      int var5 = var4.length() + 3;
      if ((var5 <= this.maxModuleName || var5 >= 35) && this.shorterCount <= 500) {
         if (var5 < this.maxModuleName) {
            this.shorterCount++;
         }
      } else {
         this.maxModuleName = var5;
         this.shorterCount = 0;
      }

      StringBuilder var6 = new StringBuilder(33 + this.maxModuleName + var2.length());
      if (var10) {
         String var7 = null;
         int var8 = var1.getLevel().intValue();
         if (var8 <= Level.ALL.intValue()) {
            var7 = "\u001b[37m";
         } else if (var8 <= Level.FINEST.intValue()) {
            var7 = "\u001b[36m";
         } else if (var8 <= Level.FINER.intValue()) {
            var7 = "\u001b[34m";
         } else if (var8 <= Level.FINE.intValue()) {
            var7 = "\u001b[35m";
         } else if (var8 <= Level.CONFIG.intValue()) {
            var7 = "\u001b[32m";
         } else if (var8 <= Level.INFO.intValue()) {
            var7 = "\u001b[m";
         } else if (var8 <= Level.WARNING.intValue()) {
            var7 = "\u001b[33m";
         } else if (var8 <= Level.SEVERE.intValue()) {
            var7 = "\u001b[31m";
         }

         if (var7 != null) {
            var6.append(var7);
         }
      }

      var6.append('[');
      DATE_FORMATTER.formatTo(LocalDateTime.ofInstant(var1.getInstant(), ZoneOffset.UTC), var6);
      var6.append(' ');
      String var11;
      if (Level.WARNING.equals(var1.getLevel())) {
         var11 = "WARN";
      } else {
         var11 = var1.getLevel().getName();
      }

      int var12 = var11.length();
      if (var12 < 6) {
         var6.append(" ".repeat(6 - var12));
         var6.append(var11);
      } else {
         var6.append(var11, 0, 6);
      }

      var6.append("] ");
      var6.append(" ".repeat(Math.max(0, this.maxModuleName - var5)));
      var6.append('[').append(var4).append("] ").append(var10 ? var2 : stripAnsi(var2)).append('\n');
      class="kw">return var6.toString();
   }

   class="kw">public class="kw">static String stripAnsi(@Nonnull String var0) {
      class="kw">return ANSI_CONTROL_CODES.matcher(var0).replaceAll("");
   }
}