全局日志模块的自动注入

This commit is contained in:
click33
2022-11-02 19:13:34 +08:00
parent 8be77d70b5
commit 2abd152218
6 changed files with 110 additions and 1 deletions

View File

@@ -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());
}
}

View File

@@ -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);
}
}

View File

@@ -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`开启。
要注册自定义的侦听器也非常简单:

View File

@@ -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

View File

@@ -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);
});
}
}

View File

@@ -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