mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-09-19 18:22:15 +08:00
新增全局log模块的文档
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -42,7 +42,8 @@ public class SaTokenConfigure implements WebMvcConfigurer {
|
|||||||
|
|
||||||
// 认证函数: 每次请求执行
|
// 认证函数: 每次请求执行
|
||||||
.setAuth(obj -> {
|
.setAuth(obj -> {
|
||||||
// System.out.println("---------- sa全局认证 " + SaHolder.getRequest().getRequestPath());
|
// 输出 API 请求日志,方便调试代码
|
||||||
|
// SaManager.getLog().debug("----- 请求path={} 提交token={}", SaHolder.getRequest().getRequestPath(), StpUtil.getTokenValue());
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@@ -94,6 +94,7 @@
|
|||||||
- [常见问题排查](/more/common-questions)
|
- [常见问题排查](/more/common-questions)
|
||||||
- [框架名词解释](/more/noun-intro)
|
- [框架名词解释](/more/noun-intro)
|
||||||
- [Sa-Token功能结构图](/fun/auth-flow)
|
- [Sa-Token功能结构图](/fun/auth-flow)
|
||||||
|
- [全局 Log 输出](/fun/log)
|
||||||
- [未登录场景值详解](/fun/not-login-scene)
|
- [未登录场景值详解](/fun/not-login-scene)
|
||||||
- [Token有效期详解](/fun/token-timeout)
|
- [Token有效期详解](/fun/token-timeout)
|
||||||
- [Session模型详解](/fun/session-model)
|
- [Session模型详解](/fun/session-model)
|
||||||
|
89
sa-token-doc/fun/log.md
Normal file
89
sa-token-doc/fun/log.md
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
# 参考:全局 Log 输出
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 打开全局日志输出
|
||||||
|
|
||||||
|
以下配置可以打开全局日志输出:
|
||||||
|
|
||||||
|
<!---------------------------- tabs:start ---------------------------->
|
||||||
|
|
||||||
|
<!------------- tab:yaml 风格 ------------->
|
||||||
|
``` yaml
|
||||||
|
sa-token:
|
||||||
|
# 是否输出操作日志
|
||||||
|
is-log: true
|
||||||
|
```
|
||||||
|
|
||||||
|
<!------------- tab:properties 风格 ------------->
|
||||||
|
``` properties
|
||||||
|
# 是否输出操作日志
|
||||||
|
sa-token.is-log=true
|
||||||
|
```
|
||||||
|
<!---------------------------- tabs:end ---------------------------->
|
||||||
|
|
||||||
|
|
||||||
|
此配置项打开之后,框架将会在账号登录、注销、二级认证 等关键性步骤打印日志,以方便项目开发调试。
|
||||||
|
|
||||||
|
框架默认将日志信息打印到控制台,如果需要将日志输出到其它地方,你可以重写 SaLog 对象,例如以下代码将会把日志转接到 Slf4j 下:
|
||||||
|
|
||||||
|
``` java
|
||||||
|
/**
|
||||||
|
* 将 Sa-Token log 信息转接到 Slf4j
|
||||||
|
*/
|
||||||
|
@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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
重新启动项目,观察日志打印变化。
|
||||||
|
|
||||||
|
### 增加API访问日志
|
||||||
|
|
||||||
|
手动增加 API 请求日志信息,这将非常有助于你调试代码,例如:
|
||||||
|
|
||||||
|
``` java
|
||||||
|
@Bean
|
||||||
|
public SaServletFilter getSaServletFilter() {
|
||||||
|
return new SaServletFilter()
|
||||||
|
.addInclude("/**")
|
||||||
|
.addExclude("/favicon.ico")
|
||||||
|
.setAuth(obj -> {
|
||||||
|
// 输出 API 请求日志,方便调试代码
|
||||||
|
SaManager.getLog().debug("----- 请求path={} 提交token={}", SaHolder.getRequest().getRequestPath(), StpUtil.getTokenValue());
|
||||||
|
// 其它校验代码...
|
||||||
|
})
|
||||||
|
// 异常处理函数:每次认证函数发生异常时执行此函数
|
||||||
|
.setError(e -> {
|
||||||
|
System.out.println("---------- sa全局异常 ");
|
||||||
|
return SaResult.error(e.getMessage());
|
||||||
|
})
|
||||||
|
;
|
||||||
|
}
|
||||||
|
```
|
Reference in New Issue
Block a user