diff --git a/client/src/pages/admin/logs.vue b/client/src/pages/admin/logs.vue index ceaa360..90528dc 100644 --- a/client/src/pages/admin/logs.vue +++ b/client/src/pages/admin/logs.vue @@ -109,6 +109,7 @@ const logLines = ref([]) const loading = ref(false) const page = ref(1) const total = ref(0) +const showDatePicker = ref(false) const noMore = computed(() => logLines.value.length >= total.value && total.value > 0) @@ -173,6 +174,7 @@ function loadMore() { function selectDate(date: string) { selectedDate.value = date + page.value = 1 loadLogs() } @@ -189,7 +191,10 @@ function getLineClass(line: string): string { } // 筛选条件变化时重新加载 -watch([filterLevel], () => loadLogs()) +watch([filterLevel, selectedDate], () => { + page.value = 1 + loadLogs() +}) function goBack() { uni.navigateBack() diff --git a/server/src/middleware/logger.ts b/server/src/middleware/logger.ts index 4849e0e..3344658 100644 --- a/server/src/middleware/logger.ts +++ b/server/src/middleware/logger.ts @@ -23,9 +23,11 @@ function formatTime(date: Date): string { function writeLog(level: string, message: string, meta?: Record) { const dateStr = getDateStr() const logFile = path.join(LOG_DIR, `${dateStr}.log`) - const time = formatTime(new Date()) + const now = new Date() + const time = formatTime(now) + const timestamp = now.toISOString() // 记录 UTC 时间戳,前端可按用户时区显示 const metaStr = meta ? ` ${JSON.stringify(meta)}` : '' - const line = `[${time}] ${level} ${message}${metaStr}\n` + const line = `[${time}] [${timestamp}] ${level} ${message}${metaStr}\n` fs.appendFile(logFile, line, (err) => { if (err) console.error('[Logger] Write error:', err) @@ -37,13 +39,12 @@ export function requestLogger(req: Request, res: Response, next: NextFunction) { const startTime = Date.now() const { method, url, ip } = req - // 提取用户 ID(如果有 auth 中间件设置) - const userId = (req as any).userId - - // 响应结束时记录日志 + // 响应结束时记录日志(此时 authMiddleware 已执行,userId 可用) res.on('finish', () => { const duration = Date.now() - startTime const { statusCode } = res + // 延迟获取 userId,确保 authMiddleware 已执行 + const userId = (req as any).userId const meta = { method,