阶段二:认证授权模块 - User实体类、Mapper、DataService - Token服务(Redis存储)、密码加密(BCrypt) - 认证拦截器、UserContext上下文 - 登录/登出接口 阶段三:核心业务模块 - 用户管理:CRUD、状态管理、密码重置 - 模板管理:CRUD、状态管理 - 工作日志:CRUD、权限控制 配置分离架构 - env.properties(环境敏感配置) - service.properties(服务配置) - logback-spring.xml更新 部署脚本 - deploy/目录(Nginx配置、启停脚本、备份脚本) 单元测试:29个测试全部通过
70 lines
3.1 KiB
XML
70 lines
3.1 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<configuration>
|
|
<!-- 从环境变量读取配置 -->
|
|
<springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="worklog-api"/>
|
|
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="./logs"/>
|
|
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
|
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
|
|
|
<!-- 日志格式:强制包含 traceId 和 spanId -->
|
|
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId:-}][%X{spanId:-}] %-5level %logger{50} - %msg%n"/>
|
|
|
|
<!-- 控制台输出 -->
|
|
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
|
<encoder>
|
|
<pattern>${LOG_PATTERN}</pattern>
|
|
<charset>UTF-8</charset>
|
|
</encoder>
|
|
</appender>
|
|
|
|
<!-- 应用日志文件输出 - 直接输出到 logs/ 目录 -->
|
|
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
<file>${LOG_PATH}/app.log</file>
|
|
<encoder>
|
|
<pattern>${LOG_PATTERN}</pattern>
|
|
<charset>UTF-8</charset>
|
|
</encoder>
|
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
<fileNamePattern>${LOG_PATH}/app-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
|
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
|
<maxFileSize>100MB</maxFileSize>
|
|
</timeBasedFileNamingAndTriggeringPolicy>
|
|
<maxHistory>30</maxHistory>
|
|
</rollingPolicy>
|
|
</appender>
|
|
|
|
<!-- SQL日志文件输出 - MyBatis-Plus SQL 日志独立输出 -->
|
|
<appender name="SQL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
<file>${LOG_PATH}/sql.log</file>
|
|
<encoder>
|
|
<pattern>${LOG_PATTERN}</pattern>
|
|
<charset>UTF-8</charset>
|
|
</encoder>
|
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
<fileNamePattern>${LOG_PATH}/sql-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
|
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
|
<maxFileSize>100MB</maxFileSize>
|
|
</timeBasedFileNamingAndTriggeringPolicy>
|
|
<maxHistory>30</maxHistory>
|
|
</rollingPolicy>
|
|
</appender>
|
|
|
|
<!-- MyBatis-Plus SQL日志 -->
|
|
<logger name="com.wjbl.worklog.data.mapper" level="DEBUG" additivity="false">
|
|
<appender-ref ref="SQL_FILE"/>
|
|
<appender-ref ref="CONSOLE"/>
|
|
</logger>
|
|
|
|
<!-- MyBatis-Plus 框架日志 -->
|
|
<logger name="com.baomidou.mybatisplus" level="DEBUG" additivity="false">
|
|
<appender-ref ref="SQL_FILE"/>
|
|
<appender-ref ref="CONSOLE"/>
|
|
</logger>
|
|
|
|
<!-- 根日志级别 -->
|
|
<root level="${LOG_LEVEL_ROOT}">
|
|
<appender-ref ref="CONSOLE"/>
|
|
<appender-ref ref="FILE"/>
|
|
</root>
|
|
</configuration>
|