Class RingBufferAppender

java.lang.Object
ch.qos.logback.core.spi.ContextAwareBase
ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
server.gui.RingBufferAppender
All Implemented Interfaces:
ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent>, ch.qos.logback.core.spi.ContextAware, ch.qos.logback.core.spi.FilterAttachable<ch.qos.logback.classic.spi.ILoggingEvent>, ch.qos.logback.core.spi.LifeCycle

public final class RingBufferAppender extends ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
自訂 logback Appender:把 WARN/ERROR 等級的日誌事件擷取進 ServerEventLog 的記憶體環狀緩衝,供 GUI 管理控制台「最近事件」面板讀取。

src/logback.xml<appender class="server.gui.RingBufferAppender"> 宣告並掛在 root 下,另以 ThresholdFilter level=WARN 僅放行 WARN 以上。 此 Appender 不觸碰資料庫、不阻塞 logging 執行緒(僅一次 synchronized 入列)。

分類推導:訊息或 logger 來自封包處理(MapleServerHandler / 含「數據包」)→ 「封包異常」;其餘 ERROR → 「系統錯誤」;WARN → 「警告」。反作弊偵測不經 SLF4J, 由 CheatTracker 直接寫入 ServerEventLog.anticheat(String),不在此處。

  • Field Summary

    Fields inherited from class ch.qos.logback.core.AppenderBase

    name, started

    Fields inherited from class ch.qos.logback.core.spi.ContextAwareBase

    context
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    append(ch.qos.logback.classic.spi.ILoggingEvent event)
     

    Methods inherited from class ch.qos.logback.core.AppenderBase

    addFilter, clearAllFilters, doAppend, getCopyOfAttachedFiltersList, getFilterChainDecision, getName, isStarted, setName, start, stop, toString

    Methods inherited from class ch.qos.logback.core.spi.ContextAwareBase

    addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, getDeclaredOrigin, getStatusManager, setContext

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface ch.qos.logback.core.spi.ContextAware

    addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, setContext
  • Constructor Details

    • RingBufferAppender

      public RingBufferAppender()
  • Method Details

    • append

      protected void append(ch.qos.logback.classic.spi.ILoggingEvent event)
      Specified by:
      append in class ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>