java.lang.Object
ch.qos.logback.core.spi.ContextAwareBase
ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
com.elitesland.ystdms.sys.log.provider.logback.appender.AbstractCustomAppender
com.elitesland.ystdms.sys.log.provider.logback.appender.JdbcAppender
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 class JdbcAppender extends AbstractCustomAppender
数据库存储appender.
 
    -- PostgreSQL数据库日志表结构
 CREATE TABLE IF NOT EXISTS sys_log (
     id BIGSERIAL PRIMARY KEY,
     timestamp BIGINT NOT NULL,
     level VARCHAR(10) NOT NULL,
     logger VARCHAR(255) NOT NULL,
     thread VARCHAR(100) NOT NULL,
     message TEXT NOT NULL,
     exception TEXT,
     created_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
 );

 -- 创建索引
 CREATE INDEX IF NOT EXISTS idx_timestamp ON sys_log(timestamp);
 CREATE INDEX IF NOT EXISTS idx_level ON sys_log(level);
 CREATE INDEX IF NOT EXISTS idx_logger ON sys_log(logger);
 CREATE INDEX IF NOT EXISTS idx_created_time ON sys_log(created_time);

 -- 添加表注释
 COMMENT ON TABLE sys_log IS '系统日志表';
 COMMENT ON COLUMN sys_log.id IS '主键ID';
 COMMENT ON COLUMN sys_log.timestamp IS '时间戳';
 COMMENT ON COLUMN sys_log.level IS '日志级别';
 COMMENT ON COLUMN sys_log.logger IS '记录器名称';
 COMMENT ON COLUMN sys_log.thread IS '线程名称';
 COMMENT ON COLUMN sys_log.message IS '日志消息';
 COMMENT ON COLUMN sys_log.exception IS '异常信息';
 COMMENT ON COLUMN sys_log.created_time IS '创建时间';
 
 
  • Nested Class Summary

    Nested classes/interfaces inherited from class com.elitesland.ystdms.sys.log.provider.logback.appender.AbstractCustomAppender

    AbstractCustomAppender.DefaultLayout
  • Field Summary

    Fields inherited from class com.elitesland.ystdms.sys.log.provider.logback.appender.AbstractCustomAppender

    layout

    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
    当前appender的名称
    void
    executeAppend(ch.qos.logback.classic.spi.ILoggingEvent event)
    将日志事件追加到JDBC
    void
    setDriverClassName(String driverClassName)
    设置JDBC驱动类名
    void
    setJdbcUrl(String jdbcUrl)
    设置JDBC连接URL
    void
    setPassword(String password)
    设置JDBC密码
    void
    setTableName(String tableName)
    设置日志表名
    void
    setUsername(String username)
    设置JDBC用户名
    void
    启动Appender,初始化数据源和JdbcTemplate
    void
    停止Appender,关闭数据源连接

    Methods inherited from class com.elitesland.ystdms.sys.log.provider.logback.appender.AbstractCustomAppender

    append, getAppName, getTenantId, getUserId, getUsername, isActive, setActiveAppender, setLayout

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

    addFilter, clearAllFilters, doAppend, getCopyOfAttachedFiltersList, getFilterChainDecision, getName, isStarted, setName, 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 java.lang.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

    • JdbcAppender

      public JdbcAppender()
  • Method Details

    • appenderName

      public String appenderName()
      Description copied from class: AbstractCustomAppender
      当前appender的名称

      可用于判断是否激活

      Specified by:
      appenderName in class AbstractCustomAppender
      Returns:
      appender名称
    • start

      public void start()
      启动Appender,初始化数据源和JdbcTemplate
      Specified by:
      start in interface ch.qos.logback.core.spi.LifeCycle
      Overrides:
      start in class ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
    • executeAppend

      public void executeAppend(ch.qos.logback.classic.spi.ILoggingEvent event)
      将日志事件追加到JDBC
      Specified by:
      executeAppend in class AbstractCustomAppender
      Parameters:
      event - 日志事件
    • stop

      public void stop()
      停止Appender,关闭数据源连接
      Specified by:
      stop in interface ch.qos.logback.core.spi.LifeCycle
      Overrides:
      stop in class ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
    • setJdbcUrl

      public void setJdbcUrl(String jdbcUrl)
      设置JDBC连接URL
      Parameters:
      jdbcUrl - JDBC连接URL
    • setUsername

      public void setUsername(String username)
      设置JDBC用户名
      Parameters:
      username - JDBC用户名
    • setPassword

      public void setPassword(String password)
      设置JDBC密码
      Parameters:
      password - JDBC密码
    • setDriverClassName

      public void setDriverClassName(String driverClassName)
      设置JDBC驱动类名
      Parameters:
      driverClassName - JDBC驱动类名
    • setTableName

      public void setTableName(String tableName)
      设置日志表名
      Parameters:
      tableName - 日志表名