Class OpLogContextHolder

java.lang.Object
org.shoulder.log.operation.context.OpLogContextHolder

public class OpLogContextHolder extends Object
该类充当 OperationLogHolder 的角色。set日志对象后,可以通过该工具在同一线程内操作这个日志对象。 主要为了配合 OperationLog注解的使用 若应用希望扩展该类能力:允许以继承或组合方式调用类,并使用新的类,增加扩展能力。 todo 【优化-扩展性】获取上下文,若不存在时,默认策略异常 → 忽略?或者可配置?
Author:
lym
  • Constructor Details

    • OpLogContextHolder

      public OpLogContextHolder()
  • Method Details

    • log

      public static void log()
      记录日志
    • getContextOrException

      @Nonnull public static OpLogContext getContextOrException()
      获取当前上下文,并检查状态
    • getContext

      @Nullable public static OpLogContext getContext()
      不经过检查,直接获取日志上下文
    • setContext

      public static void setContext(OpLogContext opLogContext)
      设置日志上下文
    • getLog

      public static OperationLogDTO getLog()
      获取日志实体
      Returns:
      日志上下文中日志实体
    • setLog

      public static void setLog(OperationLogDTO entity)
      设置日志实体
    • getOperator

      public static Operator getOperator()
      Returns:
      日志上下文中 当前用户
    • setOperator

      public static void setOperator(Operator entity)
      设置用户信息
    • setOperableObject

      public static void setOperableObject(Operable operableObj)
      批量设置被操作对象
    • getOperableObjects

      public static List<Operable> getOperableObjects()
      获取日志上下文中所有被操作对象
    • setOperableObjects

      public static void setOperableObjects(Collection<? extends Operable> operableObjs)
      批量设置被操作对象
    • addOperableObjects

      public static void addOperableObjects(Collection<? extends Operable> operableObjs)
      添加多个被操作对象
    • isEnableAutoLog

      public static boolean isEnableAutoLog()
      是否开启自动记录日志
    • closeAutoLog

      public static void closeAutoLog()
      临时关闭自动记录日志,一般用于表示希望 @OperationLog 只生成操作日志对象,而不记录。

      场景:批量导入时,使用新线程对导入内容的校验,日志记录也在新日志上下文中做, 处理请求的方法中不希望记录操作日志 在方法中调用 closeAutoLog,告诉框架在本方法结束后不要记录操作日志

    • enableAutoLog

      public static void enableAutoLog()
      重新开启自动记录日志
    • isLogWhenThrow

      public static boolean isLogWhenThrow()
      抛异常后是否记录操作日志
    • setLogWhenThrow

      public static void setLogWhenThrow(boolean logWhenThrow)
      抛异常后是否记录操作日志
    • clean

      public static void clean()
      线程变量清理: 除非你很明白框架原理,否则不要主动调用该方法
    • setOperationLogger

      public static void setOperationLogger(OperationLogger opLogger) throws org.springframework.beans.BeansException
      Throws:
      org.springframework.beans.BeansException