提交 61ef264d 作者: 洪东保

日志级别

父级 9d131e30
......@@ -32,11 +32,21 @@ public class UserController {
return userService.login(vo.getAgentId(), vo.getData(), ipAddr);
}
/**
* 超管登录
* @param vo
* @return
*/
@PostMapping(value = "/auth")
public R auth(@Validated @RequestBody UserVo.Auth vo) {
return R.ok(userService.auth(vo, RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM));
}
/**
* 用户使用
* @param vo
* @return
*/
@PostMapping(value = "/tokenAuth")
public R tokenAuth(@Validated @RequestBody ApplicationUserVO.LoginDecrypt vo) {
try {
......
package com.cmeeting.constant;
public interface RecordTemplateConstant {
/**
* 管理员
*/
String TEMPLATE_TYPE_SYSTEM = "system";
/**
* 用户
*/
String TEMPLATE_TYPE_CUSTOM = "custom";
/**
......
......@@ -9,6 +9,7 @@ import com.cmeeting.service.ModulePermissionService;
import com.cmeeting.util.R;
import com.cmeeting.vo.AuthVO;
import com.cmeeting.vo.PermissionVO;
import org.jetbrains.annotations.NotNull;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -78,17 +79,17 @@ public class PermissionController {
* 用户自己取消使用生成纪要功能列表
* @return
*/
@GetMapping("/personalCancelList")
public R personalCancelList() {
@GetMapping("/cancelList")
public R cancelList() {
return R.ok(modulePermissionService.personalCancelList());
}
/**
* 用户自己取消使用生成纪要功能
*/
@GetMapping("/personalCancel")
public R personalCancel() {
return R.ok(modulePermissionService.personalCancel(SecurityUtil.getUser().getUserId()));
@GetMapping("/personalSwitch")
public R personalSwitch(@Validated@NotNull Boolean enable) {
return R.ok(modulePermissionService.personalSwitch(SecurityUtil.getUser().getId(), enable));
}
......
......@@ -24,5 +24,5 @@ public interface ModulePermissionService extends IService<ModulePermission> {
List<PermissionCheckedDTO.User> personalCancelList();
boolean personalCancel(String userId);
Boolean personalSwitch(String userId, boolean enable);
}
......@@ -171,17 +171,32 @@ public class ModulePermissionServiceImpl extends ServiceImpl<ModulePermissionMap
@Override
@Transactional(rollbackFor = Exception.class)
public boolean personalCancel(String userId) {
this.remove(new LambdaQueryWrapper<ModulePermission>()
.eq(ModulePermission::getType, RecordTemplateConstant.REL_TYPE_USER)
.eq(ModulePermission::getPurpose, PermissionPruposeType.ADMIN_AUTH)
.eq(ModulePermission::getRelId, userId));
ModulePermission cancel = ModulePermission.builder()
.type(RecordTemplateConstant.REL_TYPE_USER)
.purpose(PermissionPruposeType.PERSONAL_CLOSE)
.relId(userId)
.createTime(new Date()).build();
return this.save(cancel);
public Boolean personalSwitch(String userId, boolean enable) {
if (enable) {
this.remove(new LambdaQueryWrapper<ModulePermission>()
.eq(ModulePermission::getType, RecordTemplateConstant.REL_TYPE_USER)
.eq(ModulePermission::getPurpose, PermissionPruposeType.PERSONAL_CLOSE)
.eq(ModulePermission::getRelId, userId));
ModulePermission cancel = ModulePermission.builder()
.type(RecordTemplateConstant.REL_TYPE_USER)
.purpose(PermissionPruposeType.ADMIN_AUTH)
.userType(UserTypeConstant.SYNC)
.relId(userId)
.createTime(new Date()).build();
return this.save(cancel);
} else {
this.remove(new LambdaQueryWrapper<ModulePermission>()
.eq(ModulePermission::getType, RecordTemplateConstant.REL_TYPE_USER)
.eq(ModulePermission::getPurpose, PermissionPruposeType.ADMIN_AUTH)
.eq(ModulePermission::getRelId, userId));
ModulePermission cancel = ModulePermission.builder()
.type(RecordTemplateConstant.REL_TYPE_USER)
.purpose(PermissionPruposeType.PERSONAL_CLOSE)
.userType(UserTypeConstant.SYNC)
.relId(userId)
.createTime(new Date()).build();
return this.save(cancel);
}
}
}
......
......@@ -149,10 +149,10 @@ permission:
tenantId: ${PERMISSION_TENANT_ID}
admin-white_users: ${PERMISSION_ADMIN_WHITE_USERS}
logging:
level:
com.cmeeting.mapper.primary: INFO
com.cmeeting.mapper.secondary: INFO
root: INFO
#logging:
# level:
# com.cmeeting.mapper.primary: INFO
# com.cmeeting.mapper.secondary: INFO
# root: INFO
isDev: true
\ No newline at end of file
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<?xml version="1.0" encoding="UTF-8"?>
<configuration
scan="true"
scanPeriod="10 seconds">
<contextName>
logback
</contextName>
<springProperty
scope="context"
name="springAppName"
source="spring.application.name"/>
<springProperty
scope="context"
name="logPath"
source="spring.application.logPath"/>
<!-- 日志储存空间位置 -->
<springProperty
name="log.path"
source="logPath"
defaultValue="./logs"/>
<!-- 彩色日志 -->
<conversionRule
conversionWord="clr"
converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule
conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule
conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- 彩色日志格式 -->
<property
name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!-- 输出到控制台 -->
<appender
name="CONSOLE"
class="ch.qos.logback.core.ConsoleAppender">
<!-- 此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>
debug
</level>
</filter>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<!-- 设置字符集 -->
<charset>
UTF-8
</charset>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
<!-- 输出到文件 -->
<appender
name="FILE_ALL"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<!-- <file>-->
<!-- ${log.path}/log_all.log-->
<!-- </file>-->
<!-- 日志文件输出格式 -->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志归档 -->
<fileNamePattern>
${log.path}/cmeeting_%d{yyyyMMdd}_%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>
200MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 日志文件保留天数 -->
<maxHistory>
15
</maxHistory>
</rollingPolicy>
</appender>
<!-- 时间滚动输出 level为 ERROR 日志 -->
<appender
name="ERROR_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>
${log.path}/log_error.log
</file>
<!-- 日志文件输出格式 -->
<encoder>
<pattern>
%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level%logger{36}.%M\(%line\)-%msg%n
</pattern>
<charset>
UTF-8
</charset>
<!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>
${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log.gz
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>
100MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 日志文件保留天数 -->
<maxHistory>
15
</maxHistory>
</rollingPolicy>
<!-- 过滤出ERROR级别的日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level> ERROR </level>
<onMatch> ACCEPT </onMatch>
<onMismatch> DENY </onMismatch>
</filter>
</appender>
<!-- MyBatis SQL 日志 -->
<logger name="java.sql.Connection" level="DEBUG"/>
<logger name="java.sql.Statement" level="DEBUG"/>
<logger name="java.sql.PreparedStatement" level="DEBUG"/>
<logger name="java.sql.ResultSet" level="DEBUG"/>
<!-- DAO 包路径(替换为你的Mapper接口包名) -->
<logger name="com.cmeeting.mapper.primary" level="DEBUG"/>
<logger name="com.cmeeting.mapper.secondary" level="DEBUG"/>
<!-- 日志总开关 -->
<root level="info">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE_ALL"/>
<appender-ref ref="ERROR_FILE"/>
</root>
</configuration>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论