| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package mycasbin
- import (
- "IotAdmin/core/logger"
- "sync/atomic"
- )
- // Logger Logger的实现.
- type CasbinLogger struct {
- enable int32
- }
- // EnableLog 设置是否打印消息
- func (l *CasbinLogger) EnableLog(enable bool) {
- i := 0
- if enable {
- i = 1
- }
- atomic.StoreInt32(&(l.enable), int32(i))
- }
- // IsEnabled 记录器是否启用
- func (l *CasbinLogger) IsEnabled() bool {
- return atomic.LoadInt32(&(l.enable)) != 0
- }
- // LogModel 记录Model
- func (l *CasbinLogger) LogModel(model [][]string) {
- var str string
- for i := range model {
- for j := range model[i] {
- str += " " + model[i][j]
- }
- str += "\n"
- }
- logger.DefaultLogger.Log(logger.InfoLevel, str)
- }
- // LogEnforce 记录强制执行相关的日志信息
- func (l *CasbinLogger) LogEnforce(matcher string, request []interface{}, result bool, explains [][]string) {
- logger.DefaultLogger.Fields(map[string]interface{}{
- "matcher": matcher,
- "request": request,
- "result": result,
- "explains": explains,
- }).Log(logger.InfoLevel, nil)
- }
- // LogRole 记录角色相关的信息。
- func (l *CasbinLogger) LogRole(roles []string) {
- logger.DefaultLogger.Fields(map[string]interface{}{
- "roles": roles,
- })
- }
- // LogPolicy 记录策略相关的日志信息。
- func (l *CasbinLogger) LogPolicy(policy map[string][][]string) {
- data := make(map[string]interface{}, len(policy))
- for k := range policy {
- data[k] = policy[k]
- }
- logger.DefaultLogger.Fields(data).Log(logger.InfoLevel, nil)
- }
- func (l *CasbinLogger) LogError(err error, msg ...string) {
- logger.DefaultLogger.Fields(map[string]interface{}{
- "error": err.Error(),
- "msg": msg,
- }).Log(logger.ErrorLevel, nil)
- }
|