From 2abd1522185abc1872c37bde1da343cc448cff7e Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Wed, 2 Nov 2022 19:13:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E5=B1=80=E6=97=A5=E5=BF=97=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E7=9A=84=E8=87=AA=E5=8A=A8=E6=B3=A8=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/pj/SaTokenCaseApplication.java | 3 ++ .../java/com/pj/satoken/SaLogForSlf4j.java | 49 +++++++++++++++++++ sa-token-doc/up/global-listener.md | 2 +- .../satoken/reactor/spring/SaBeanInject.java | 22 +++++++++ .../cn/dev33/satoken/solon/XPluginImp.java | 13 +++++ .../cn/dev33/satoken/spring/SaBeanInject.java | 22 +++++++++ 6 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/SaLogForSlf4j.java diff --git a/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/SaTokenCaseApplication.java b/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/SaTokenCaseApplication.java index 1476151d..5261af0d 100644 --- a/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/SaTokenCaseApplication.java +++ b/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/SaTokenCaseApplication.java @@ -3,6 +3,8 @@ package com.pj; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import cn.dev33.satoken.SaManager; + /** * Sa-Token 示例 * @author kong @@ -13,6 +15,7 @@ public class SaTokenCaseApplication { public static void main(String[] args) { SpringApplication.run(SaTokenCaseApplication.class, args); + System.out.println("\n启动成功:Sa-Token配置如下:" + SaManager.getConfig()); } } diff --git a/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/SaLogForSlf4j.java b/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/SaLogForSlf4j.java new file mode 100644 index 00000000..59d0a8dd --- /dev/null +++ b/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/SaLogForSlf4j.java @@ -0,0 +1,49 @@ +package com.pj.satoken; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import cn.dev33.satoken.log.SaLog; + +/** + * 将 Sa-Token log 信息转接到 Slf4j + * + * @author kong + * @since 2022-11-2 + */ +//@Component +public class SaLogForSlf4j implements SaLog { + + Logger log = LoggerFactory.getLogger(SaLogForSlf4j.class); + + @Override + public void trace(String str, Object... args) { + log.trace(str, args); + } + + @Override + public void debug(String str, Object... args) { + log.debug(str, args); + } + + @Override + public void info(String str, Object... args) { + log.info(str, args); + } + + @Override + public void warn(String str, Object... args) { + log.trace(str, args); + } + + @Override + public void error(String str, Object... args) { + log.error(str, args); + } + + @Override + public void fatal(String str, Object... args) { + log.error(str, args); + } + +} diff --git a/sa-token-doc/up/global-listener.md b/sa-token-doc/up/global-listener.md index 639d4a2f..4a1330dc 100644 --- a/sa-token-doc/up/global-listener.md +++ b/sa-token-doc/up/global-listener.md @@ -10,7 +10,7 @@ Sa-Token 提供一种侦听器机制,通过注册侦听器,你可以订阅 ![sa-token-listener](https://oss.dev33.cn/sa-token/doc/sa-token-listener.svg 's-w') -框架默认内置了侦听器 `SaTokenListenerForConsolePrint` 实现:[代码参考](https://gitee.com/dromara/sa-token/blob/master/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerForConsolePrint.java) +框架默认内置了侦听器 `SaTokenListenerForLog` 实现:[代码参考](https://gitee.com/dromara/sa-token/blob/master/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerForLog.java) ,功能是控制台 log 打印输出,你可以通过配置`sa-token.is-log=true`开启。 要注册自定义的侦听器也非常简单: diff --git a/sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaBeanInject.java b/sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaBeanInject.java index f1a09d0f..65cb110d 100644 --- a/sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaBeanInject.java +++ b/sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaBeanInject.java @@ -18,6 +18,8 @@ import cn.dev33.satoken.id.SaIdUtil; import cn.dev33.satoken.json.SaJsonTemplate; import cn.dev33.satoken.listener.SaTokenEventCenter; import cn.dev33.satoken.listener.SaTokenListener; +import cn.dev33.satoken.log.SaLog; +import cn.dev33.satoken.log.input.SaLogInput; import cn.dev33.satoken.same.SaSameTemplate; import cn.dev33.satoken.sign.SaSignTemplate; import cn.dev33.satoken.stp.StpInterface; @@ -153,6 +155,26 @@ public class SaBeanInject { public void setSaSignTemplate(SaSignTemplate saSignTemplate) { SaManager.setSaSignTemplate(saSignTemplate); } + + /** + * 注入自定义的 日志输出 Bean + * + * @param log / + */ + @Autowired(required = false) + public void setLog(SaLog log) { + SaManager.setLog(log); + } + + /** + * 注入自定义的 日志接受 Bean + * + * @param logInput / + */ + @Autowired(required = false) + public void setLogInput(SaLogInput logInput) { + SaManager.setLogInput(logInput); + } /** * 注入自定义的 StpLogic diff --git a/sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/XPluginImp.java b/sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/XPluginImp.java index ba1770e1..1dd98630 100644 --- a/sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/XPluginImp.java +++ b/sa-token-starter/sa-token-solon-plugin/src/main/java/cn/dev33/satoken/solon/XPluginImp.java @@ -15,6 +15,8 @@ import cn.dev33.satoken.id.SaIdUtil; import cn.dev33.satoken.json.SaJsonTemplate; import cn.dev33.satoken.listener.SaTokenEventCenter; import cn.dev33.satoken.listener.SaTokenListener; +import cn.dev33.satoken.log.SaLog; +import cn.dev33.satoken.log.input.SaLogInput; import cn.dev33.satoken.same.SaSameTemplate; import cn.dev33.satoken.sign.SaSignTemplate; import cn.dev33.satoken.solon.model.SaContextForSolon; @@ -102,9 +104,20 @@ public class XPluginImp implements Plugin { SaManager.setSaSignTemplate(bean); }); + // Sa-Token 日志输出 Bean + context.getBeanAsyn(SaLog.class, bean -> { + SaManager.setLog(bean); + }); + + // Sa-Token 日志接受 Bean + context.getBeanAsyn(SaLogInput.class, bean -> { + SaManager.setLogInput(bean); + }); + // 自定义 StpLogic 对象 context.getBeanAsyn(StpLogic.class, bean -> { StpUtil.setStpLogic(bean); }); } + } \ No newline at end of file diff --git a/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaBeanInject.java b/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaBeanInject.java index af842ac3..3f41c55d 100644 --- a/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaBeanInject.java +++ b/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaBeanInject.java @@ -18,6 +18,8 @@ import cn.dev33.satoken.id.SaIdUtil; import cn.dev33.satoken.json.SaJsonTemplate; import cn.dev33.satoken.listener.SaTokenEventCenter; import cn.dev33.satoken.listener.SaTokenListener; +import cn.dev33.satoken.log.SaLog; +import cn.dev33.satoken.log.input.SaLogInput; import cn.dev33.satoken.same.SaSameTemplate; import cn.dev33.satoken.sign.SaSignTemplate; import cn.dev33.satoken.stp.StpInterface; @@ -153,6 +155,26 @@ public class SaBeanInject { public void setSaSignTemplate(SaSignTemplate saSignTemplate) { SaManager.setSaSignTemplate(saSignTemplate); } + + /** + * 注入自定义的 日志输出 Bean + * + * @param log / + */ + @Autowired(required = false) + public void setLog(SaLog log) { + SaManager.setLog(log); + } + + /** + * 注入自定义的 日志接受 Bean + * + * @param logInput / + */ + @Autowired(required = false) + public void setLogInput(SaLogInput logInput) { + SaManager.setLogInput(logInput); + } /** * 注入自定义的 StpLogic